diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-01-07 17:30:57 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-01-07 17:30:57 +0100 |
| commit | e1c7fefe89438bbfc669dfec0476921145f8fd5d (patch) | |
| tree | f408ff54f0d23abb99a00206bb89b0fadcf9603b /odoo/addons/base/tests/test_api.py | |
| parent | 6e933e42efb8e11087db63cfb5302f37f8e8b72d (diff) | |
| parent | cdb0c08cb9a3b61466f8cdf368bac831839be8bf (diff) | |
[MERGE] forward port branch saas-14 up to cdb0c08cb9a
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 cbb63daec59..3894629d736 100644 --- a/odoo/addons/base/tests/test_api.py +++ b/odoo/addons/base/tests/test_api.py @@ -359,6 +359,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 |
