From c7f73e8dbc82067cc6c65a8c1ade333c45a90e32 Mon Sep 17 00:00:00 2001 From: Marc Durepos Date: Fri, 9 Jun 2023 21:32:13 -0400 Subject: [PATCH] bemade_fsm: Added test for sales orders. --- tests/test_task_template_sale_order.py | 85 ++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 tests/test_task_template_sale_order.py diff --git a/tests/test_task_template_sale_order.py b/tests/test_task_template_sale_order.py new file mode 100644 index 0000000..c19a892 --- /dev/null +++ b/tests/test_task_template_sale_order.py @@ -0,0 +1,85 @@ +from .test_task_template import TestTaskTemplateCommon +from odoo.tests.common import tagged + + +class TestTaskTemplateSalesOrder(TestTaskTemplateCommon): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.partner = cls.env['res.partner'].create({ + 'name': 'Test Partner', + }) + cls.sale_order1 = cls.env['sale.order'].create({ + 'partner_id': cls.partner.id, + 'client_order_ref': 'TEST ORDER', + }) + cls.sol_serv_order = cls.env['sale.order.line'].create({ + 'name': cls.product_task_global_project.name, + 'product_id': cls.product_task_global_project.id, + 'product_uom_qty': 1, + 'product_uom': cls.product_task_global_project.uom_id.id, + 'price_unit': 120.0, + 'order_id': cls.sale_order1.id, + 'tax_id': False, + }) + cls.sol_serv_order_task_in_project = cls.env['sale.order.line'].create({ + 'name': cls.product_task_in_project.name, + 'product_id': cls.product_task_in_project.id, + 'product_uom_qty': 1, + 'product_uom': cls.product_task_in_project.uom_id.id, + 'price_unit': 150.0, + 'order_id': cls.sale_order1.id, + 'tax_id': False, + }) + cls.sale_order2 = cls.env['sale.order'].create({ + 'partner_id': cls.partner.id, + 'client_order_ref': 'TEST ORDER', + }) + cls.sol_tree_order = cls.env['sale.order.line'].create({ + 'name': cls.product_task_tree_global_project.name, + 'product_id': cls.product_task_tree_global_project.id, + 'product_uom_qty': 1, + 'product_uom': cls.product_task_tree_global_project.uom_id.id, + 'price_unit': 120.0, + 'order_id': cls.sale_order2.id, + 'tax_id': False, + }) + cls.sol_serv_order_task_in_project = cls.env['sale.order.line'].create({ + 'name': cls.product_task_tree_in_project.name, + 'product_id': cls.product_task_tree_in_project.id, + 'product_uom_qty': 1, + 'product_uom': cls.product_task_tree_in_project.uom_id.id, + 'price_unit': 150.0, + 'order_id': cls.sale_order2.id, + 'tax_id': False, + }) + + @tagged('-at_install', 'post_install') + def test_order_confirmation_simple_template(self): + """ Confirming the order should create a task in the global project. """ + so = self.sale_order1 + so.action_confirm() + sol1 = so.order_line[0] + sol2 = so.order_line[1] + task1 = sol1.task_id + task2 = sol2.task_id + self.assertTrue(task1) + self.assertTrue(task2) + self.assertTrue(self.task1.name in task1.name) + self.assertTrue(self.task1.name in task2.name) + + def test_order_confirmation_tree_template(self): + def assert_structure(sol): + self.assertTrue(sol.task_id.child_ids and len(sol.task_id.child_ids) == 2) + self.assertTrue(self.parent_task.name in sol.task_id.name) + self.assertTrue(self.child_task_1.name in sol.task_id.child_ids[0].name) + self.assertTrue(self.child_task_2.name in sol.task_id.child_ids[1].name) + self.assertTrue(sol.task_id.child_ids[1].child_ids and len(sol.task_id.child_ids.child_ids) == 1) + self.assertTrue(self.grandchild_task.name in sol.task_id.child_ids.child_ids[0].name) + so = self.sale_order2 + so.action_confirm() + sol1 = so.order_line[0] + sol2 = so.order_line[1] + assert_structure(sol1) + assert_structure(sol2) +