summaryrefslogtreecommitdiff
path: root/addons/website_slides/tests/test_statistics.py
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2019-08-14 07:35:49 +0000
committerDenis Ledoux <dle@odoo.com>2019-08-20 12:43:59 +0000
commit9920f20e4c7753bc17bea71dea3a90f7de687196 (patch)
tree6a3d0258c10a8ccb1d85949ddafdeb070de78121 /addons/website_slides/tests/test_statistics.py
parente28d3aa4d3851d72deba08c236072d002f83216a (diff)
[IMP] models: ORM speedup
This branch is the combination of several optimizations in the ORM: * store field values once in the cache: the cache reflects more faithfully the database, only fields that explicitly depend on the context have an extra indirection in the cache; * delay recomputations by default: use method `recompute` to explicitly flush out pending recomputations; * delay updates in method `write`: updates are stored in a data structure that can be flushed efficiently to the database with method `flush` (which also flush out recomputations); * make method `modified` take advantage of inverse fields to inverse dependencies; * filter records by evaluating a domain on records in Python; * a computed field with `readonly=False` behaves like a normal field with an onchange method; * computed fields are computed in superuser mode by default. Work done by Toufik Ben Jaa, Raphael Collet, Denis Ledoux and Fabien Pinckaers. closes odoo/odoo#35659 Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
Diffstat (limited to 'addons/website_slides/tests/test_statistics.py')
-rw-r--r--addons/website_slides/tests/test_statistics.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/addons/website_slides/tests/test_statistics.py b/addons/website_slides/tests/test_statistics.py
index 5fb755496db..a57f76d2f72 100644
--- a/addons/website_slides/tests/test_statistics.py
+++ b/addons/website_slides/tests/test_statistics.py
@@ -30,6 +30,7 @@ class TestChannelStatistics(common.SlidesCase):
channel_publisher.action_add_member()
self.assertEqual(channel_publisher.members_count, 1)
channel_publisher._action_add_members(self.user_emp.partner_id)
+ channel_publisher.invalidate_cache(['partner_ids'])
self.assertEqual(channel_publisher.members_count, 2)
self.assertEqual(channel_publisher.partner_ids, self.user_publisher.partner_id | self.user_emp.partner_id)
@@ -68,16 +69,20 @@ class TestChannelStatistics(common.SlidesCase):
@mute_logger('odoo.models')
def test_channel_user_statistics_complete_check_member(self):
- (self.slide | self.slide_2).write({'is_preview': True})
- slides_emp = (self.slide | self.slide_2).with_user(self.user_emp)
+ slides = (self.slide | self.slide_2)
+ slides.write({'is_preview': True})
+ slides.flush(['is_preview'])
+ slides_emp = slides.with_user(self.user_emp)
slides_emp.read(['name'])
with self.assertRaises(UserError):
slides_emp.action_set_completed()
@mute_logger('odoo.models')
def test_channel_user_statistics_view_check_member(self):
- (self.slide | self.slide_2).write({'is_preview': True})
- slides_emp = (self.slide | self.slide_2).with_user(self.user_emp)
+ slides = (self.slide | self.slide_2)
+ slides.write({'is_preview': True})
+ slides.flush(['is_preview'])
+ slides_emp = slides.with_user(self.user_emp)
slides_emp.read(['name'])
with self.assertRaises(UserError):
slides_emp.action_set_viewed()
@@ -89,6 +94,7 @@ class TestSlideStatistics(common.SlidesCase):
def test_slide_user_statistics(self):
channel_publisher = self.channel.with_user(self.user_publisher)
channel_publisher._action_add_members(self.user_emp.partner_id)
+ channel_publisher.invalidate_cache(['partner_ids'])
slide_emp = self.slide.with_user(self.user_emp)
self.assertEqual(slide_emp.likes, 0)