From 5900a68a7aaebf079d2406dabeb238943dce9200 Mon Sep 17 00:00:00 2001 From: Joan Mateu Jordi Date: Tue, 4 Jan 2022 11:05:06 +0100 Subject: [PATCH] [14.0][ADD] contract_sale: Add tests to the module --- contract_sale/readme/CONTRIBUTORS.rst | 1 + contract_sale/security/ir.model.access.csv | 1 + contract_sale/tests/__init__.py | 4 + contract_sale/tests/test_sale_contract.py | 118 +++++++++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 contract_sale/tests/__init__.py create mode 100644 contract_sale/tests/test_sale_contract.py diff --git a/contract_sale/readme/CONTRIBUTORS.rst b/contract_sale/readme/CONTRIBUTORS.rst index 3338f68ba..ec69c0662 100644 --- a/contract_sale/readme/CONTRIBUTORS.rst +++ b/contract_sale/readme/CONTRIBUTORS.rst @@ -7,3 +7,4 @@ * Levent Karakaş * Bejaoui Souheil * Dhara Solanki +* Joan Mateu diff --git a/contract_sale/security/ir.model.access.csv b/contract_sale/security/ir.model.access.csv index 7f58bb031..c8aedc90e 100644 --- a/contract_sale/security/ir.model.access.csv +++ b/contract_sale/security/ir.model.access.csv @@ -2,6 +2,7 @@ "contract_template_salesman","Recurring Salesman","contract.model_contract_template","sales_team.group_sale_salesman",1,1,1,0 "contract_template_sale_manager","Recurring Sale Manager","contract.model_contract_template","sales_team.group_sale_manager",1,1,1,1 "contract_line_saleman","Recurring Invoice Line Saleman","contract.model_contract_line","sales_team.group_sale_salesman",1,1,1,0 +"contract_modification_salesman","Contract Modification Salesman","contract.model_contract_modification","sales_team.group_sale_salesman",1,1,1,0 "contract_line_manager","Recurring Invoice Line Manager","contract.model_contract_line","sales_team.group_sale_manager",1,1,1,1 "contract_template_line_salesman","Recurring Contract Line Salesman","contract.model_contract_template_line","sales_team.group_sale_salesman",1,1,1,0 "contract_template_line_manager","Recurring Contract Line Manager","contract.model_contract_template_line","sales_team.group_sale_manager",1,1,1,1 diff --git a/contract_sale/tests/__init__.py b/contract_sale/tests/__init__.py new file mode 100644 index 000000000..81bd54446 --- /dev/null +++ b/contract_sale/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2022 ForgeFlow - Joan Mateu +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import test_sale_contract diff --git a/contract_sale/tests/test_sale_contract.py b/contract_sale/tests/test_sale_contract.py new file mode 100644 index 000000000..5ecc8bd36 --- /dev/null +++ b/contract_sale/tests/test_sale_contract.py @@ -0,0 +1,118 @@ +# Copyright 2022 ForgeFlow - Joan Mateu +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) + +from odoo.tests.common import SavepointCase + + +class TestSaleContract(SavepointCase): + @classmethod + def setUpClass(cls): + super(TestSaleContract, cls).setUpClass() + + cls.user_sales_all_documents = cls.env["res.users"].create( + { + "name": "user rights all documents ", + "login": "test1", + "groups_id": [ + (6, 0, [cls.env.ref("sales_team.group_sale_salesman_all_leads").id]) + ], + } + ) + cls.user_sales_own_documents = cls.env["res.users"].create( + { + "name": "user rights own documents ", + "login": "test2", + "groups_id": [ + (6, 0, [cls.env.ref("sales_team.group_sale_salesman").id]) + ], + } + ) + + cls.pricelist = cls.env["product.pricelist"].create( + {"name": "pricelist for contract test"} + ) + + cls.partner = cls.env["res.partner"].create( + { + "name": "Test contract partner", + "property_product_pricelist": cls.pricelist.id, + } + ) + + def _create_contract(self, user): + self.contract = ( + self.env["contract.contract"] + .with_user(user) + .create( + { + "name": "Test Contract", + "partner_id": self.partner.id, + "pricelist_id": self.partner.property_product_pricelist.id, + "line_recurrence": False, + "contract_type": "sale", + "recurring_interval": 1, + "recurring_rule_type": "monthly", + "date_start": "2018-02-15", + "contract_line_ids": [], + } + ) + ) + + def test_01_create_contract_with_sale_perm_not_acc(self): + self._create_contract(self.user_sales_all_documents) + + contracts = ( + self.env["contract.contract"] + .with_user(self.user_sales_all_documents) + .search([]) + ) + self.assertEqual(len(contracts), 1) + + def test_02_see_just_own_contracts(self): + self._create_contract(self.user_sales_all_documents) + self._create_contract(self.user_sales_all_documents) + self._create_contract(self.user_sales_own_documents) + self._create_contract(self.user_sales_own_documents) + + contracts = ( + self.env["contract.contract"] + .with_user(self.user_sales_own_documents) + .search([]) + ) + self.assertEqual(len(contracts), 2) + + def test_03_see_all_contracts(self): + self._create_contract(self.user_sales_all_documents) + self._create_contract(self.user_sales_all_documents) + self._create_contract(self.user_sales_own_documents) + self._create_contract(self.user_sales_own_documents) + contracts = ( + self.env["contract.contract"] + .with_user(self.user_sales_all_documents) + .search([]) + ) + self.assertEqual(len(contracts), 4) + + def test_04_edit_existing_contract(self): + self._create_contract(self.user_sales_own_documents) + contract_modify = ( + self.env["contract.contract"] + .with_user(self.user_sales_own_documents) + .search([]) + ) + self.assertEqual(len(contract_modify), 1) + self.assertEqual(contract_modify.name, "Test Contract") + + self.env["contract.contract"].with_user(self.user_sales_own_documents).search( + [] + ).write( + { + "name": "Test_contract_to_modify", + } + ) + contract_modify = ( + self.env["contract.contract"] + .with_user(self.user_sales_own_documents) + .search([]) + ) + self.assertEqual(contract_modify.name, "Test_contract_to_modify")