diff options
Diffstat (limited to 'addons/point_of_sale/tests/test_pos_setup.py')
| -rw-r--r-- | addons/point_of_sale/tests/test_pos_setup.py | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/addons/point_of_sale/tests/test_pos_setup.py b/addons/point_of_sale/tests/test_pos_setup.py new file mode 100644 index 00000000..22fa68b3 --- /dev/null +++ b/addons/point_of_sale/tests/test_pos_setup.py @@ -0,0 +1,76 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import tools +import odoo +from odoo.addons.point_of_sale.tests.common import TestPoSCommon + +@odoo.tests.tagged('post_install', '-at_install') +class TestPoSSetup(TestPoSCommon): + """ This group of tests is for sanity check in setting up global records which will be used + in each testing. + + If a test fails here, then it means there are inconsistencies in what we expect in the setup. + """ + def setUp(self): + super(TestPoSSetup, self).setUp() + + self.config = self.basic_config + self.products = [ + self.create_product('Product 1', self.categ_basic, lst_price=10.0, standard_price=5), + self.create_product('Product 2', self.categ_basic, lst_price=20.0, standard_price=10), + self.create_product('Product 3', self.categ_basic, lst_price=30.0, standard_price=15), + ] + + def test_basic_config_values(self): + + config = self.basic_config + self.assertEqual(config.currency_id, self.company_currency) + self.assertEqual(config.pricelist_id.currency_id, self.company_currency) + + def test_other_currency_config_values(self): + config = self.other_currency_config + self.assertEqual(config.currency_id, self.other_currency) + self.assertEqual(config.pricelist_id.currency_id, self.other_currency) + + def test_product_categories(self): + # check basic product category + # it is expected to have standard and manual_periodic valuation + self.assertEqual(self.categ_basic.property_cost_method, 'standard') + self.assertEqual(self.categ_basic.property_valuation, 'manual_periodic') + # check anglo saxon product category + # this product categ is expected to have fifo and real_time valuation + self.assertEqual(self.categ_anglo.property_cost_method, 'fifo') + self.assertEqual(self.categ_anglo.property_valuation, 'real_time') + + def test_product_price(self): + def get_price(pricelist, product): + return pricelist.get_product_price(product, 1, self.customer) + + + # check usd pricelist + pricelist = self.basic_config.pricelist_id + for product in self.products: + self.assertAlmostEqual(get_price(pricelist, product), product.lst_price) + + # check eur pricelist + # exchange rate to the other currency is set to 0.5, thus, lst_price + # is expected to have half its original value. + pricelist = self.other_currency_config.pricelist_id + for product in self.products: + self.assertAlmostEqual(get_price(pricelist, product), product.lst_price * 0.5) + + def test_taxes(self): + tax7 = self.taxes['tax7'] + self.assertEqual(tax7.name, 'Tax 7%') + self.assertAlmostEqual(tax7.amount, 7) + self.assertEqual(tax7.invoice_repartition_line_ids.mapped('account_id').id, self.tax_received_account.id) + tax10 = self.taxes['tax10'] + self.assertEqual(tax10.name, 'Tax 10%') + self.assertAlmostEqual(tax10.amount, 10) + self.assertEqual(tax10.price_include, True) + self.assertEqual(tax10.invoice_repartition_line_ids.mapped('account_id').id, self.tax_received_account.id) + tax_group_7_10 = self.taxes['tax_group_7_10'] + self.assertEqual(tax_group_7_10.name, 'Tax 7+10%') + self.assertEqual(tax_group_7_10.amount_type, 'group') + self.assertEqual(sorted(tax_group_7_10.children_tax_ids.ids), sorted((tax7 | tax10).ids)) |
