diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-01-08 17:08:48 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-01-08 17:08:48 +0100 |
| commit | 3e4138deaa23b3631dc3fce33cd6d1b3be28ffbd (patch) | |
| tree | 8f8b5557363374af71baeeea97d4565a7ca1cce1 /odoo/addons/base/tests/test_api.py | |
| parent | 232675c49b8cabdedce98b9b9c2ccc6d963b4d9a (diff) | |
| parent | 2d824a5b7ad9e2d834bb39feb79c986eba28d6cc (diff) | |
[MERGE] forward port branch saas-11.3 up to 2d824a5b7ad
Diffstat (limited to 'odoo/addons/base/tests/test_api.py')
| -rw-r--r-- | odoo/addons/base/tests/test_api.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/odoo/addons/base/tests/test_api.py b/odoo/addons/base/tests/test_api.py index 270a8d75df4..dd003711f32 100644 --- a/odoo/addons/base/tests/test_api.py +++ b/odoo/addons/base/tests/test_api.py @@ -368,6 +368,31 @@ class TestAPI(common.TransactionCase): same_prefetch(empty, empty.category_id) @mute_logger('odoo.models') + def test_60_prefetch_read(self): + """ Check that reading a field computes it on self only. """ + Partner = self.env['res.partner'] + field = type(Partner).company_type + self.assertTrue(field.compute and not field.store) + + partner1 = Partner.create({'name': 'Foo'}) + partner2 = Partner.create({'name': 'Bar', 'parent_id': partner1.id}) + self.assertEqual(partner1.child_ids, partner2) + + # reading partner1 should not prefetch 'company_type' on partner2 + self.env.clear() + partner1 = partner1.with_prefetch() + partner1.read(['company_type']) + self.assertIn('company_type', partner1._cache) + self.assertNotIn('company_type', partner2._cache) + + # reading partner1 should not prefetch 'company_type' on partner2 + self.env.clear() + partner1 = partner1.with_prefetch() + partner1.read(['child_ids', 'company_type']) + self.assertIn('company_type', partner1._cache) + self.assertNotIn('company_type', partner2._cache) + + @mute_logger('odoo.models') def test_70_one(self): """ Check method one(). """ # check with many records |
