From f2db00d7acef251354758d6f04f8f3d0ae73b30e Mon Sep 17 00:00:00 2001 From: Jeremy Kersten Date: Fri, 2 Sep 2016 23:18:50 +0200 Subject: [PATCH] [IMP] website_sale: improve data to be multi currency, multi pricelist and fix tests according to new data --- addons/product/data/product_data.xml | 7 +++++ addons/website_sale/data/demo.xml | 18 ++++++------ .../tests/test_website_sale_pricelist.py | 28 ++++++++++++++++--- addons/website_sale/views/templates.xml | 1 + addons/website_sale/views/views.xml | 1 - 5 files changed, 42 insertions(+), 13 deletions(-) diff --git a/addons/product/data/product_data.xml b/addons/product/data/product_data.xml index 32ac3e9c996..48b12ea96e5 100644 --- a/addons/product/data/product_data.xml +++ b/addons/product/data/product_data.xml @@ -197,5 +197,12 @@ parameter) will see those record just disappear. + + property_product_pricelist + + + + + diff --git a/addons/website_sale/data/demo.xml b/addons/website_sale/data/demo.xml index 23e4179d985..b0067cf40ad 100644 --- a/addons/website_sale/data/demo.xml +++ b/addons/website_sale/data/demo.xml @@ -747,39 +747,41 @@ Weight: 31 grams - formula + percentage list_price - 10 + 10 10 + + Europe Pricelist 3 + formula list_price - 10 10 - US/CA Pricelist - - - + US/CA Pricelist + + + 3 + formula list_price - 10 10 diff --git a/addons/website_sale/tests/test_website_sale_pricelist.py b/addons/website_sale/tests/test_website_sale_pricelist.py index 55400f024f3..1a34a662838 100644 --- a/addons/website_sale/tests/test_website_sale_pricelist.py +++ b/addons/website_sale/tests/test_website_sale_pricelist.py @@ -12,6 +12,7 @@ class TestWebsitePriceList(TransactionCase): def setUp(self): super(TestWebsitePriceList, self).setUp() + self.env.user.partner_id.country_id = False # Remove country to avoid property pricelist computed. self.website = self.env['website'].browse(1) self.website.pricelist_id = self.ref('product.list0') self.patcher = patch('odoo.addons.website_sale.models.sale_order.Website.get_pricelist_available', wraps=self._get_pricelist_available) @@ -40,7 +41,8 @@ class TestWebsitePriceList(TransactionCase): } for country, result in country_list.items(): pls = self.get_pl(show, current_pl, country) - self.assertEquals(len(pls), result) + self.assertEquals(len(pls), result, 'Test failed for %s (%s [%s] vs %s)' + % (country, len(pls), pls.mapped('name'), result)) def test_get_pricelist_available_not_show(self): show = False @@ -56,7 +58,8 @@ class TestWebsitePriceList(TransactionCase): for country, result in country_list.items(): pls = self.get_pl(show, current_pl, country) - self.assertEquals(len(pls), result) + self.assertEquals(len(pls), result, 'Test failed for %s (%s [%s] vs %s)' + % (country, len(pls), pls.mapped('name'), result)) def test_get_pricelist_available_promocode(self): christmas_pl = self.ref('website_sale.list_christmas') @@ -79,9 +82,26 @@ class TestWebsitePriceList(TransactionCase): # mock patch method could not pass env context available = self.website.is_pricelist_available(christmas_pl) if result: - self.assertTrue(available) + self.assertTrue(available, 'AssertTrue failed for %s' % country) else: - self.assertFalse(available) + self.assertFalse(available, 'AssertFalse failed for %s' % country) + + def test_get_pricelist_available_show_with_auto_property(self): + show = True + self.env.user.partner_id.country_id = self.env.ref('base.us') # Add US pricelist auto + current_pl = False + + country_list = { + False: 4, # Benelux, Europe, US, USA + 'BE': 3, # Benelux, Europe, USA + 'IT': 2, # Europe, USA + 'US': 1, # US + 'AF': 1 # USA + } + for country, result in country_list.items(): + pls = self.get_pl(show, current_pl, country) + self.assertEquals(len(pls), result, 'Test failed for %s (%s [%s] vs %s)' + % (country, len(pls), pls.mapped('name'), result)) def tearDown(self): self.patcher.stop() diff --git a/addons/website_sale/views/templates.xml b/addons/website_sale/views/templates.xml index 6b6f61e1202..bf5f48f996f 100644 --- a/addons/website_sale/views/templates.xml +++ b/addons/website_sale/views/templates.xml @@ -105,6 +105,7 @@ + diff --git a/addons/website_sale/views/views.xml b/addons/website_sale/views/views.xml index 87f550e50da..5798b1defd5 100644 --- a/addons/website_sale/views/views.xml +++ b/addons/website_sale/views/views.xml @@ -139,7 +139,6 @@

- website_sale.pricelist.form