summaryrefslogtreecommitdiff
path: root/odoo/addons/test_new_api/tests/test_new_fields.py
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2020-01-06 15:03:20 +0000
committerRaphael Collet <rco@odoo.com>2020-01-07 09:37:11 +0000
commit1639b614ebea493aa24d1b0b96541960c494a8a4 (patch)
tree0a163cc86ab302871b6b8bdba75a2c315a022b5f /odoo/addons/test_new_api/tests/test_new_fields.py
parent46da3ea5b9e553bbc724ce9e7981cf0dee9cc648 (diff)
[FIX] fields: x2many field with 'active_test' in own context
Consider an x2many field with `context={'active_test': False}`. The value of that field should always contain inactive records, as the field's own context overrides the context of the current record. closes odoo/odoo#42824 X-original-commit: a2fc37adc179fb8bfc11251137334f0a43c58135 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.py32
1 files changed, 32 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 5600affc125..d476f6b843d 100644
--- a/odoo/addons/test_new_api/tests/test_new_fields.py
+++ b/odoo/addons/test_new_api/tests/test_new_fields.py
@@ -1786,6 +1786,38 @@ class TestX2many(common.TransactionCase):
parent.active = False
self.assertFalse(child4.parent_active)
+ def test_12_active_test_one2many_with_context(self):
+ Model = self.env['test_new_api.model_active_field']
+ parent = Model.create({})
+ all_children = Model.create([
+ {'parent_id': parent.id, 'active': True},
+ {'parent_id': parent.id, 'active': False},
+ ])
+ act_children = all_children[0]
+
+ self.assertEqual(parent.children_ids, act_children)
+ self.assertEqual(parent.with_context(active_test=True).children_ids, act_children)
+ self.assertEqual(parent.with_context(active_test=False).children_ids, all_children)
+
+ self.assertEqual(parent.all_children_ids, all_children)
+ self.assertEqual(parent.with_context(active_test=True).all_children_ids, all_children)
+ self.assertEqual(parent.with_context(active_test=False).all_children_ids, all_children)
+
+ self.assertEqual(parent.active_children_ids, act_children)
+ self.assertEqual(parent.with_context(active_test=True).active_children_ids, act_children)
+ self.assertEqual(parent.with_context(active_test=False).active_children_ids, act_children)
+
+ # check read()
+ self.env.cache.invalidate()
+ self.assertEqual(parent.children_ids, act_children)
+ self.assertEqual(parent.all_children_ids, all_children)
+ self.assertEqual(parent.active_children_ids, act_children)
+
+ self.env.cache.invalidate()
+ self.assertEqual(parent.with_context(active_test=False).children_ids, all_children)
+ self.assertEqual(parent.with_context(active_test=False).all_children_ids, all_children)
+ self.assertEqual(parent.with_context(active_test=False).active_children_ids, act_children)
+
def test_search_many2many(self):
""" Tests search on many2many fields. """
tags = self.env['test_new_api.multi.tag']