summaryrefslogtreecommitdiff
path: root/odoo/addons/test_new_api/tests/test_new_fields.py
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2020-09-16 12:29:02 +0000
committerRaphael Collet <rco@odoo.com>2020-09-17 14:07:26 +0000
commit77ec3b224f3fd6c8ad6dccbbf7612be8464a385d (patch)
treeb9492603bd11ef228e96d09d774c66a200c2a1cf /odoo/addons/test_new_api/tests/test_new_fields.py
parent9512a23f48176fe0e7970039c824281c4af18162 (diff)
[FIX] core: flush() domain returned by search method
Assume field B depends on A, and searching on B is rewritten as a domain that mentions A. If A is modified, and then we search on B, one has to flush A to the database before searching. closes odoo/odoo#57958 X-original-commit: b242b7b1382ee39ebefa58c556931b7dae77f669 Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Diffstat (limited to 'odoo/addons/test_new_api/tests/test_new_fields.py')
-rw-r--r--odoo/addons/test_new_api/tests/test_new_fields.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/odoo/addons/test_new_api/tests/test_new_fields.py b/odoo/addons/test_new_api/tests/test_new_fields.py
index f8e9e6db49c..34839dd517c 100644
--- a/odoo/addons/test_new_api/tests/test_new_fields.py
+++ b/odoo/addons/test_new_api/tests/test_new_fields.py
@@ -1047,6 +1047,7 @@ class TestFields(TransactionCaseWithUserDemo):
def test_25_related_multi(self):
""" test write() on several related fields based on a common computed field. """
foo = self.env['test_new_api.foo'].create({'name': 'A', 'value1': 1, 'value2': 2})
+ oof = self.env['test_new_api.foo'].create({'name': 'B', 'value1': 1, 'value2': 2})
bar = self.env['test_new_api.bar'].create({'name': 'A'})
self.assertEqual(bar.foo, foo)
self.assertEqual(bar.value1, 1)
@@ -1057,6 +1058,11 @@ class TestFields(TransactionCaseWithUserDemo):
self.assertEqual(foo.value1, 3)
self.assertEqual(foo.value2, 4)
+ # modify 'name', and search on 'foo': this should flush 'name'
+ bar.name = 'B'
+ self.assertEqual(bar.foo, oof)
+ self.assertIn(bar, bar.search([('foo', 'in', oof.ids)]))
+
def test_26_inherited(self):
""" test inherited fields. """
# a bunch of fields are inherited from res_partner