summaryrefslogtreecommitdiff
path: root/addons/product/tests
diff options
context:
space:
mode:
authorNicolas Martinelli <nim@odoo.com>2018-11-05 11:10:24 +0000
committerNicolas Martinelli <nim@odoo.com>2018-11-06 08:34:26 +0000
commit478691b95de9eb0d03c145e547a773de40ca9a4d (patch)
treebbdef4d8d5ef2c2bceccce7e63b8ed3742dbd811 /addons/product/tests
parent22ee6ebbfc6b508aabfefb4e114045f4b36cf8df (diff)
[IMP] product, purchase: vendor reference in multi-company
- Create 2 companies A & B - On a product P, define 2 suppliers (same vendor), one for each company, but with a different Vendor Product Code - Create a PO in A for P Both supplier codes are proposed in the Many2one widget, while only the code for A is expected. Fixes #27857 opw-1894952 closes odoo/odoo#28402
Diffstat (limited to 'addons/product/tests')
-rw-r--r--addons/product/tests/test_seller.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/addons/product/tests/test_seller.py b/addons/product/tests/test_seller.py
index 36693317c34..830b277da1d 100644
--- a/addons/product/tests/test_seller.py
+++ b/addons/product/tests/test_seller.py
@@ -10,6 +10,11 @@ class TestSeller(TransactionCase):
super(TestSeller, self).setUp()
self.product_service = self.env.ref('product.product_product_2')
self.product_service.default_code = 'DEFCODE'
+ self.product_consu = self.env['product.product'].create({
+ 'name': 'Boudin',
+ 'type': 'consu',
+ })
+ self.product_consu.default_code = 'DEFCODE'
self.asustec = self.env.ref('base.res_partner_1')
self.camptocamp = self.env.ref('base.res_partner_12')
@@ -26,3 +31,35 @@ class TestSeller(TransactionCase):
.with_context(partner_id=self.camptocamp.id)\
.code
self.assertEqual('C2CCODE', context_code, "Partner's code not used in product name with context set")
+
+ def test_20_sellers_company(self):
+ company_a = self.env.user.company_id
+ company_b = self.env['res.company'].create({
+ 'name': 'Saucisson Inc.',
+ })
+ self.product_consu.write({'seller_ids': [
+ (0, 0, {'name': self.asustec.id, 'product_code': 'A', 'company_id': company_a.id}),
+ (0, 0, {'name': self.asustec.id, 'product_code': 'B', 'company_id': company_b.id}),
+ (0, 0, {'name': self.asustec.id, 'product_code': 'NO', 'company_id': False}),
+ ]})
+
+ names = self.product_consu.with_context(
+ partner_id=self.asustec.id,
+ ).name_get()
+ ref = set([x[1] for x in names])
+ self.assertEqual(len(names), 3, "3 vendor references should have been found")
+ self.assertEqual(ref, {'[A] Boudin', '[B] Boudin', '[NO] Boudin'}, "Incorrect vendor reference list")
+ names = self.product_consu.with_context(
+ partner_id=self.asustec.id,
+ company_id=company_a.id,
+ ).name_get()
+ ref = set([x[1] for x in names])
+ self.assertEqual(len(names), 2, "2 vendor references should have been found")
+ self.assertEqual(ref, {'[A] Boudin', '[NO] Boudin'}, "Incorrect vendor reference list")
+ names = self.product_consu.with_context(
+ partner_id=self.asustec.id,
+ company_id=company_b.id,
+ ).name_get()
+ ref = set([x[1] for x in names])
+ self.assertEqual(len(names), 2, "2 vendor references should have been found")
+ self.assertEqual(ref, {'[B] Boudin', '[NO] Boudin'}, "Incorrect vendor reference list")