From 8f8b5497d124fd553e6a44a21fca1eccca42d0f8 Mon Sep 17 00:00:00 2001 From: Raphael Collet Date: Fri, 9 Mar 2012 17:15:47 +0100 Subject: [PATCH] [IMP] tests: add test on related fields bzr revid: rco@openerp.com-20120309161547-um53k5rqqts9flz6 --- openerp/tests/test_fields.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/openerp/tests/test_fields.py b/openerp/tests/test_fields.py index c049a43fc97..73f57ac8bbe 100644 --- a/openerp/tests/test_fields.py +++ b/openerp/tests/test_fields.py @@ -13,6 +13,29 @@ class TestRelatedField(common.TransactionCase): def setUp(self): super(TestRelatedField, self).setUp() self.partner = self.registry('res.partner') + self.company = self.registry('res.company') + + def test_0_related(self): + """ test an usual related field """ + # add a related field test_related_company_id on res.partner + old_columns = self.partner._columns + self.partner._columns = dict(old_columns) + self.partner._columns.update({ + 'related_company_partner_id': fields.related('company_id', 'partner_id', type='many2one', obj='res.partner'), + }) + + # find a company with a non-null partner_id + ids = self.company.search(self.cr, self.uid, [('partner_id', '!=', False)], limit=1) + id = ids[0] + + # find partners that satisfy [('partner_id.company_id', '=', id)] + company_ids = self.company.search(self.cr, self.uid, [('partner_id', '=', id)]) + partner_ids1 = self.partner.search(self.cr, self.uid, [('company_id', 'in', company_ids)]) + partner_ids2 = self.partner.search(self.cr, self.uid, [('related_company_partner_id', '=', id)]) + self.assertEqual(partner_ids1, partner_ids2) + + # restore res.partner fields + self.partner._columns = old_columns def do_test_company_field(self, field): # get a partner with a non-null company_id