Skip to content
Snippets Groups Projects
test_export.py 3.21 KiB
import odoo

from ..export import export
from .util.odoo_tests import TestBase


@odoo.tests.common.at_install(False)
@odoo.tests.common.post_install(True)
class Test(TestBase):
    def test_export_char_field(self):
        record = self.env["res.partner"].create({"name": "my name"})
        self.assertEqual(
            {"name": "my name", "company": None},
            export(
                record, {"name": {}, "company": {"source": "company_name"}}
            ),
        )

    def test_export_integer_field(self):
        record = self.env["res.partner"].create({"name": "my name"})
        self.assertEqual({"color": 0}, export(record, {"color": {}}))
        record.color = 10
        self.assertEqual({"color": 10}, export(record, {"color": {}}))

    def test_export_boolean_field(self):
        record = self.env["res.partner"].create({"name": "my name"})
        self.assertEqual({"active": True}, export(record, {"active": {}}))
        record.active = False
        self.assertEqual({"active": False}, export(record, {"active": {}}))

    def test_export_text_field(self):
        record = self.env["res.partner"].create({"name": "my name"})
        self.assertEqual({"comment": None}, export(record, {"comment": {}}))
        record.comment = "A comment"
        self.assertEqual(
            {"comment": "A comment"}, export(record, {"comment": {}})
        )

    def test_export_float_field(self):
        record = self.env["res.partner"].create({"name": "my name"})
        self.assertEqual(
            {"credit_limit": 0.0}, export(record, {"credit_limit": {}})
        )
        record.credit_limit = 4.5

        self.assertEqual(
            {"credit_limit": 4.5}, export(record, {"credit_limit": {}})
        )

    def test_export_selection_field(self):
        record = self.env["res.partner"].create({"name": "my name"})
        self.assertEqual(
            {"company_type": "person"}, export(record, {"company_type": {}})
        )

    def test_export_many2one_field(self):
        record = self.env["res.partner"].create({"name": "my name"})
        self.assertEqual(
            {"parent": None},
            export(
                record,
                {"parent": {"source": "parent_id", "mapping": {"name": {}}}},
            ),
        )
        parent = self.env["res.partner"].create({"name": "my parent"})
        record.parent_id = parent.id
        self.assertEqual(
            {"parent": {"name": "my parent"}},
            export(
                record,
                {"parent": {"source": "parent_id", "mapping": {"name": {}}}},
            ),
        )

    def test_export_one2many_field(self):
        m = {"children": {"source": "child_ids", "mapping": {"name": {}}}}
        parent = self.env["res.partner"].create({"name": "my parent"})

        self.assertEqual({"children": []}, export(parent, m))

        self.env["res.partner"].create(
            {"name": "Child1", "parent_id": parent.id}
        )
        self.assertEqual({"children": [{"name": "Child1"}]}, export(parent, m))
        self.env["res.partner"].create(
            {"name": "Child2", "parent_id": parent.id}
        )
        self.assertEqual(
            {"children": [{"name": "Child1"}, {"name": "Child2"}]},
            export(parent, m),
        )