summaryrefslogtreecommitdiff
path: root/odoo/addons/base/tests/test_api.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-01-07 17:30:57 +0100
committerChristophe Simonis <chs@odoo.com>2019-01-07 17:30:57 +0100
commite1c7fefe89438bbfc669dfec0476921145f8fd5d (patch)
treef408ff54f0d23abb99a00206bb89b0fadcf9603b /odoo/addons/base/tests/test_api.py
parent6e933e42efb8e11087db63cfb5302f37f8e8b72d (diff)
parentcdb0c08cb9a3b61466f8cdf368bac831839be8bf (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.py25
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