diff options
| author | Laurent Smet <las@odoo.com> | 2020-07-27 08:31:58 +0000 |
|---|---|---|
| committer | Laurent Smet <las@odoo.com> | 2020-07-31 08:38:30 +0000 |
| commit | 6d1e1e09ead203aae5e12af07d01735c64c7bc46 (patch) | |
| tree | f33fe414e080ec34dc4cfcc36b8551b8dbe2afac /addons/sale_purchase | |
| parent | dc1fccf6998db43ae91248d096f57bcf7c8c5bc6 (diff) | |
[IMP] sale*: Remove dependency to AccountTestCommon
l10n runbot builds are all failing when running at least one test depending of AccountTestCommon because it:
- doesn't create a sandboxed testing environnement to manage the multi-currency, multi-company, the default company's currency, the exchange rates...
- doesn't setup a testing user then all tests are done using the superuser.
- doesn't provide a fully setup chart of accounts: exchange difference journal is not set, accounts have bad types, etc...
- is run sometimes at-install.
--task: 2301180m
Diffstat (limited to 'addons/sale_purchase')
| -rw-r--r-- | addons/sale_purchase/tests/common.py | 23 | ||||
| -rw-r--r-- | addons/sale_purchase/tests/test_access_rights.py | 10 | ||||
| -rw-r--r-- | addons/sale_purchase/tests/test_sale_purchase.py | 68 |
3 files changed, 38 insertions, 63 deletions
diff --git a/addons/sale_purchase/tests/common.py b/addons/sale_purchase/tests/common.py index 5d96690b627..652841cc0f3 100644 --- a/addons/sale_purchase/tests/common.py +++ b/addons/sale_purchase/tests/common.py @@ -1,35 +1,22 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo.addons.sale.tests.test_sale_common import TestCommonSaleNoChart +from odoo.addons.sale.tests.common import TestSaleCommon -class TestCommonSalePurchaseNoChart(TestCommonSaleNoChart): +class TestCommonSalePurchaseNoChart(TestSaleCommon): @classmethod - def setUpUsers(cls): - super(TestCommonSalePurchaseNoChart, cls).setUpUsers() + def setUpClass(cls, chart_template_ref=None): + super().setUpClass(chart_template_ref=chart_template_ref) - group_salemanager = cls.env.ref('sales_team.group_sale_manager') - group_salesman = cls.env.ref('sales_team.group_sale_salesman') - cls.user_manager.write({'groups_id': [(6, 0, [group_salemanager.id])]}) - cls.user_employee.write({'groups_id': [(6, 0, [group_salesman.id])]}) - - @classmethod - def setUpServicePurchaseProducts(cls): uom_unit = cls.env.ref('uom.product_uom_unit') uom_dozen = cls.env.ref('uom.product_uom_dozen') - user_type_income = cls.env.ref('account.data_account_type_direct_costs') - cls.account_income_product_purchase = cls.env['account.account'].create({ - 'code': 'INCOME_PROD_PURCHASE', - 'name': 'Icome - Test Account', - 'user_type_id': user_type_income.id, - }) # Create category cls.product_category_purchase = cls.env['product.category'].create({ 'name': 'Product Category with Income account', - 'property_account_income_categ_id': cls.account_income_product_purchase.id + 'property_account_income_categ_id': cls.company_data['default_account_expense'].id }) cls.partner_vendor_service = cls.env['res.partner'].create({ diff --git a/addons/sale_purchase/tests/test_access_rights.py b/addons/sale_purchase/tests/test_access_rights.py index 3fcb7c95a28..5240bc0ed19 100644 --- a/addons/sale_purchase/tests/test_access_rights.py +++ b/addons/sale_purchase/tests/test_access_rights.py @@ -3,15 +3,15 @@ from odoo.exceptions import AccessError from odoo.addons.sale_purchase.tests.common import TestCommonSalePurchaseNoChart +from odoo.tests import tagged +@tagged('-at_install', 'post_install') class TestAccessRights(TestCommonSalePurchaseNoChart): @classmethod - def setUpClass(cls): - super(TestAccessRights, cls).setUpClass() - - cls.setUpServicePurchaseProducts() + def setUpClass(cls, chart_template_ref=None): + super().setUpClass(chart_template_ref=chart_template_ref) # Create a users group_sale_user = cls.env.ref('sales_team.group_sale_salesman') @@ -34,7 +34,7 @@ class TestAccessRights(TestCommonSalePurchaseNoChart): SaleOrder = self.env['sale.order'].with_context(tracking_disable=True) sale_order = SaleOrder.with_user(self.user_salesperson).create({ - 'partner_id': self.partner_customer_usd.id, + 'partner_id': self.partner_a.id, 'user_id': self.user_salesperson.id }) diff --git a/addons/sale_purchase/tests/test_sale_purchase.py b/addons/sale_purchase/tests/test_sale_purchase.py index 99a37a3ad95..4f85ea2542b 100644 --- a/addons/sale_purchase/tests/test_sale_purchase.py +++ b/addons/sale_purchase/tests/test_sale_purchase.py @@ -2,52 +2,40 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo.exceptions import UserError, AccessError - +from odoo.tests import tagged from odoo.addons.sale_purchase.tests.common import TestCommonSalePurchaseNoChart +@tagged('-at_install', 'post_install') class TestSalePurchase(TestCommonSalePurchaseNoChart): @classmethod - def setUpClass(cls): - super(TestSalePurchase, cls).setUpClass() - - # set up users - cls.setUpUsers() - group_salemanager = cls.env.ref('sales_team.group_sale_manager') - group_salesman = cls.env.ref('sales_team.group_sale_salesman') - cls.user_manager.write({'groups_id': [(6, 0, [group_salemanager.id])]}) - cls.user_employee.write({'groups_id': [(6, 0, [group_salesman.id])]}) - - # set up accounts and products and journals - cls.setUpAdditionalAccounts() - cls.setUpAccountJournal() - cls.setUpClassicProducts() - cls.setUpServicePurchaseProducts() + def setUpClass(cls, chart_template_ref=None): + super().setUpClass(chart_template_ref=chart_template_ref) # create a generic Sale Order with 2 classical products and a purchase service SaleOrder = cls.env['sale.order'].with_context(tracking_disable=True) cls.sale_order_1 = SaleOrder.create({ - 'partner_id': cls.partner_customer_usd.id, - 'partner_invoice_id': cls.partner_customer_usd.id, - 'partner_shipping_id': cls.partner_customer_usd.id, - 'pricelist_id': cls.pricelist_usd.id, + 'partner_id': cls.partner_a.id, + 'partner_invoice_id': cls.partner_a.id, + 'partner_shipping_id': cls.partner_a.id, + 'pricelist_id': cls.company_data['default_pricelist'].id, }) cls.sol1_service_deliver = cls.env['sale.order.line'].create({ - 'name': cls.service_deliver.name, - 'product_id': cls.service_deliver.id, + 'name': cls.company_data['product_service_delivery'].name, + 'product_id': cls.company_data['product_service_delivery'].id, 'product_uom_qty': 1, - 'product_uom': cls.service_deliver.uom_id.id, - 'price_unit': cls.service_deliver.list_price, + 'product_uom': cls.company_data['product_service_delivery'].uom_id.id, + 'price_unit': cls.company_data['product_service_delivery'].list_price, 'order_id': cls.sale_order_1.id, 'tax_id': False, }) cls.sol1_product_order = cls.env['sale.order.line'].create({ - 'name': cls.product_order.name, - 'product_id': cls.product_order.id, + 'name': cls.company_data['product_order_no'].name, + 'product_id': cls.company_data['product_order_no'].id, 'product_uom_qty': 2, - 'product_uom': cls.product_order.uom_id.id, - 'price_unit': cls.product_order.list_price, + 'product_uom': cls.company_data['product_order_no'].uom_id.id, + 'price_unit': cls.company_data['product_order_no'].list_price, 'order_id': cls.sale_order_1.id, 'tax_id': False, }) @@ -62,26 +50,26 @@ class TestSalePurchase(TestCommonSalePurchaseNoChart): }) cls.sale_order_2 = SaleOrder.create({ - 'partner_id': cls.partner_customer_usd.id, - 'partner_invoice_id': cls.partner_customer_usd.id, - 'partner_shipping_id': cls.partner_customer_usd.id, - 'pricelist_id': cls.pricelist_usd.id, + 'partner_id': cls.partner_a.id, + 'partner_invoice_id': cls.partner_a.id, + 'partner_shipping_id': cls.partner_a.id, + 'pricelist_id': cls.company_data['default_pricelist'].id, }) cls.sol2_product_deliver = cls.env['sale.order.line'].create({ - 'name': cls.product_deliver.name, - 'product_id': cls.product_deliver.id, + 'name': cls.company_data['product_delivery_no'].name, + 'product_id': cls.company_data['product_delivery_no'].id, 'product_uom_qty': 5, - 'product_uom': cls.product_deliver.uom_id.id, - 'price_unit': cls.product_deliver.list_price, + 'product_uom': cls.company_data['product_delivery_no'].uom_id.id, + 'price_unit': cls.company_data['product_delivery_no'].list_price, 'order_id': cls.sale_order_2.id, 'tax_id': False, }) cls.sol2_service_order = cls.env['sale.order.line'].create({ - 'name': cls.service_order.name, - 'product_id': cls.service_order.id, + 'name': cls.company_data['product_service_order'].name, + 'product_id': cls.company_data['product_service_order'].id, 'product_uom_qty': 6, - 'product_uom': cls.service_order.uom_id.id, - 'price_unit': cls.service_order.list_price, + 'product_uom': cls.company_data['product_service_order'].uom_id.id, + 'price_unit': cls.company_data['product_service_order'].list_price, 'order_id': cls.sale_order_2.id, 'tax_id': False, }) |
