diff options
| author | Raphael Collet <rco@odoo.com> | 2020-01-06 15:03:20 +0000 |
|---|---|---|
| committer | Raphael Collet <rco@odoo.com> | 2020-01-07 09:37:11 +0000 |
| commit | 1639b614ebea493aa24d1b0b96541960c494a8a4 (patch) | |
| tree | 0a163cc86ab302871b6b8bdba75a2c315a022b5f /odoo/addons/test_new_api/tests/test_new_fields.py | |
| parent | 46da3ea5b9e553bbc724ce9e7981cf0dee9cc648 (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.py | 32 |
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'] |
