diff --git a/addons/account_qr_code_sepa/tests/test_sepa_qr.py b/addons/account_qr_code_sepa/tests/test_sepa_qr.py index 785361500c1..1613e60566a 100644 --- a/addons/account_qr_code_sepa/tests/test_sepa_qr.py +++ b/addons/account_qr_code_sepa/tests/test_sepa_qr.py @@ -25,6 +25,8 @@ class TestSEPAQRCode(AccountTestInvoicingCommon): 'partner_id': cls.company_data['company'].partner_id.id, }) + cls.env.ref('base.EUR').active = True + cls.sepa_qr_invoice = cls.env['account.move'].create({ 'move_type': 'out_invoice', 'partner_id': cls.partner_a.id, diff --git a/addons/crm/tests/test_crm_lead.py b/addons/crm/tests/test_crm_lead.py index f4e32a50d90..e40059c4ead 100644 --- a/addons/crm/tests/test_crm_lead.py +++ b/addons/crm/tests/test_crm_lead.py @@ -246,6 +246,8 @@ class TestCRMLead(TestCrmCommon): @users('user_sales_manager') def test_crm_lead_currency_sync(self): + self.company_main.currency_id = self.env.ref('base.EUR') + lead = self.env['crm.lead'].create({ 'name': 'Lead 1', 'company_id': self.company_main.id @@ -255,8 +257,6 @@ class TestCRMLead(TestCrmCommon): self.company_main.currency_id = self.env.ref('base.CHF') lead.with_company(self.company_main).update({'company_id': False}) self.assertEqual(lead.company_currency, self.env.ref('base.CHF')) - #set back original currency - self.company_main.currency_id = self.env.ref('base.EUR') @users('user_sales_manager') def test_crm_lead_date_closed(self): diff --git a/addons/delivery/tests/test_delivery_cost.py b/addons/delivery/tests/test_delivery_cost.py index a242560df24..569b99cfdb2 100644 --- a/addons/delivery/tests/test_delivery_cost.py +++ b/addons/delivery/tests/test_delivery_cost.py @@ -272,6 +272,8 @@ class TestDeliveryCost(common.TransactionCase): self.normal_delivery.product_id.taxes_id = tax_price_include # Create sales order + # Required to see `pricelist_id` in the view + self.env.user.groups_id += self.env.ref('product.group_product_pricelist') order_form = Form(self.env['sale.order'].with_context(tracking_disable=True)) order_form.partner_id = self.partner_18 order_form.pricelist_id = self.pricelist diff --git a/addons/payment/__manifest__.py b/addons/payment/__manifest__.py index a8ae13a2087..0a5b174bcad 100644 --- a/addons/payment/__manifest__.py +++ b/addons/payment/__manifest__.py @@ -26,9 +26,6 @@ 'wizards/payment_link_wizard_views.xml', 'wizards/payment_onboarding_views.xml', ], - 'demo': [ - 'data/payment_demo.xml', - ], 'assets': { 'web.assets_frontend': [ 'payment/static/src/scss/portal_payment.scss', diff --git a/addons/payment/data/payment_demo.xml b/addons/payment/data/payment_demo.xml deleted file mode 100644 index 479c5fa083d..00000000000 --- a/addons/payment/data/payment_demo.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/addons/product/tests/test_product_pricelist.py b/addons/product/tests/test_product_pricelist.py index 2e249ee5d9c..57a0f9e84af 100644 --- a/addons/product/tests/test_product_pricelist.py +++ b/addons/product/tests/test_product_pricelist.py @@ -16,13 +16,6 @@ class TestProductPricelist(ProductCommon): def setUpClass(cls): super().setUpClass() - # Required for some of the tests below - # Breaks if run after account installation (and with demo data) - # as generic chart of accounts changes company currency to USD - # therefore the test must stay at_install until adapted to work with USD - # or according to current currency. - cls._use_currency('EUR') - cls.category_5_id = cls.env['product.category'].create({ 'name': 'Office Furniture', 'parent_id': cls.product_category.id diff --git a/addons/sale/data/sale_demo.xml b/addons/sale/data/sale_demo.xml index 3f5d78eac42..79ce4a16484 100644 --- a/addons/sale/data/sale_demo.xml +++ b/addons/sale/data/sale_demo.xml @@ -1,15 +1,6 @@ - - - - - diff --git a/addons/sale/tests/test_sale_prices.py b/addons/sale/tests/test_sale_prices.py index a0ae71bf0d0..d0e0cdb2152 100644 --- a/addons/sale/tests/test_sale_prices.py +++ b/addons/sale/tests/test_sale_prices.py @@ -219,8 +219,8 @@ class TestSalePrices(SaleCommon): }) self.env['res.currency.rate'].create({ 'name': fields.Date.today(), - 'rate': 1.0, - 'currency_id': self.env.company.currency_id.id, + 'rate': 2.0, + 'currency_id': other_currency.id, 'company_id': self.env.company.id, }) order_in_other_currency = self.env['sale.order'].create({ @@ -234,7 +234,8 @@ class TestSalePrices(SaleCommon): }), ] }) - self.assertEqual(order_in_other_currency.amount_total, 480.0) + # 20.0 (product price) * 24.0 (2 dozens) * 2.0 (price rate USD -> EUR) + self.assertEqual(order_in_other_currency.amount_total, 960.0) def test_negative_discounts(self): """aka surcharges""" diff --git a/addons/test_sale_product_configurators/tests/test_sale_product_configurator.py b/addons/test_sale_product_configurators/tests/test_sale_product_configurator.py index 87d6f5ee885..9d1d26259f3 100644 --- a/addons/test_sale_product_configurators/tests/test_sale_product_configurator.py +++ b/addons/test_sale_product_configurators/tests/test_sale_product_configurator.py @@ -133,6 +133,11 @@ class TestProductConfiguratorUi(HttpCase, TestProductConfiguratorCommon): Also testing B2C setting: no impact on the backend configurator. """ + # Required to see `pricelist_id` in the view + self.salesman.write({ + 'groups_id': [(4, self.env.ref('product.group_product_pricelist').id)], + }) + # Add a 15% tax on desk tax = self.env['account.tax'].create({'name': "Test tax", 'amount': 15}) self.product_product_custo_desk.taxes_id = tax diff --git a/odoo/addons/base/__manifest__.py b/odoo/addons/base/__manifest__.py index c87d083e88a..cd1d041658b 100644 --- a/odoo/addons/base/__manifest__.py +++ b/odoo/addons/base/__manifest__.py @@ -78,6 +78,7 @@ The kernel of Odoo, needed for all installation. 'demo': [ 'data/res_users_demo.xml', 'data/res_partner_bank_demo.xml', + 'data/res_currency_demo.xml', 'data/res_currency_rate_demo.xml', 'data/res_bank_demo.xml', 'data/res_partner_demo.xml', diff --git a/odoo/addons/base/data/base_data.sql b/odoo/addons/base/data/base_data.sql index 419e3891093..25d0cc7443c 100644 --- a/odoo/addons/base/data/base_data.sql +++ b/odoo/addons/base/data/base_data.sql @@ -119,8 +119,8 @@ CREATE TABLE res_partner ( --------------------------------- -- Default data --------------------------------- -insert into res_currency (id, name, symbol) VALUES (1, 'EUR', '€'); -insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('EUR', 'base', 'res.currency', true, 1); +insert into res_currency (id, name, symbol) VALUES (1, 'USD', '$'); +insert into ir_model_data (name, module, model, noupdate, res_id) VALUES ('USD', 'base', 'res.currency', true, 1); select setval('res_currency_id_seq', 1); insert into res_company (id, name, partner_id, currency_id, create_date) VALUES (1, 'My Company', 1, 1, now() at time zone 'UTC'); diff --git a/odoo/addons/base/data/res_company_data.xml b/odoo/addons/base/data/res_company_data.xml index d794d70464c..b37f3d22b45 100644 --- a/odoo/addons/base/data/res_company_data.xml +++ b/odoo/addons/base/data/res_company_data.xml @@ -4,7 +4,7 @@ My Company - + diff --git a/odoo/addons/base/data/res_currency_demo.xml b/odoo/addons/base/data/res_currency_demo.xml new file mode 100644 index 00000000000..e7ffa3d207d --- /dev/null +++ b/odoo/addons/base/data/res_currency_demo.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + diff --git a/odoo/addons/base/data/res_currency_rate_demo.xml b/odoo/addons/base/data/res_currency_rate_demo.xml index 7ceb095b95b..d0b54932972 100644 --- a/odoo/addons/base/data/res_currency_rate_demo.xml +++ b/odoo/addons/base/data/res_currency_rate_demo.xml @@ -1,19 +1,12 @@ - - 1.2834 + 1.0 2010-01-01 - - 1.5289 - - - - 5.864 @@ -748,7 +741,7 @@ 2010-01-01 - 1.0 + 1.2834 diff --git a/odoo/addons/base/tests/common.py b/odoo/addons/base/tests/common.py index 3f85b96944a..c324261b49a 100644 --- a/odoo/addons/base/tests/common.py +++ b/odoo/addons/base/tests/common.py @@ -22,9 +22,6 @@ class BaseCommon(TransactionCase): def setUpClass(cls): super().setUpClass() - # Enforce the use of USD as main currency unless modified in inherited class(es) - cls._use_currency('USD') - # Mail logic won't be tested by default in other modules. # Mail API overrides should be tested with dedicated tests on purpose # Hack to use with_context and avoid manual context dict modification @@ -34,17 +31,6 @@ class BaseCommon(TransactionCase): 'name': 'Test Partner', }) - @classmethod - def _use_currency(cls, currency_code): - # Enforce constant currency - currency = cls._enable_currency(currency_code) - if not cls.env.company.currency_id == currency: - cls.env.transaction.cache.set(cls.env.company, type(cls.env.company).currency_id, currency.id, dirty=True) - # this is equivalent to cls.env.company.currency_id = currency but without triggering buisness code checks. - # The value is added in cache, and the cache value is set as dirty so that that - # the value will be written to the database on next flush. - # this was needed because some journal entries may exist when running tests, especially l10n demo data. - @classmethod def _enable_currency(cls, currency_code): currency = cls.env['res.currency'].with_context(active_test=False).search(