diff options
| author | Christophe Simonis <chs@odoo.com> | 2019-01-28 13:58:11 +0000 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2019-01-28 13:58:11 +0000 |
| commit | cf52a04979d7634908c2f0d8eb6a83b7dd614f64 (patch) | |
| tree | 2f8c25f3fab45268400c4ac6addfa15f1f2d37f0 /odoo/addons/base/tests/test_cache.py | |
| parent | cd1f57e9ded2e8ca81d7290e4b5b95a8776045c6 (diff) | |
| parent | d3b8422c9c44557256836bdc0da5480f553eec4d (diff) | |
[MERGE] forward port branch saas-12.1 up to d3b8422c9c4
closes odoo/odoo#30614
Diffstat (limited to 'odoo/addons/base/tests/test_cache.py')
| -rw-r--r-- | odoo/addons/base/tests/test_cache.py | 72 |
1 files changed, 41 insertions, 31 deletions
diff --git a/odoo/addons/base/tests/test_cache.py b/odoo/addons/base/tests/test_cache.py index 5ae2e8abaea..baa4bc2ab70 100644 --- a/odoo/addons/base/tests/test_cache.py +++ b/odoo/addons/base/tests/test_cache.py @@ -2,7 +2,9 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. import os +import platform import psutil +import unittest from odoo.exceptions import CacheMiss from odoo.tests.common import TransactionCase @@ -51,33 +53,35 @@ class TestRecordCache(TransactionCase): self.assertCountEqual(cache.get_missing_ids(foo2 + bar2, name), [1, 2]) # set values in one environment only - for rec in [foo1, bar1]: - cache.set(rec, name, 'NAME1') - cache.set(rec, ref, 'REF1') - check(foo1, 'NAME1', 'REF1') + cache.set(foo1, name, 'FOO1_NAME') + cache.set(foo1, ref, 'FOO1_REF') + cache.set(bar1, name, 'BAR1_NAME') + cache.set(bar1, ref, 'BAR1_REF') + check(foo1, 'FOO1_NAME', 'FOO1_REF') check(foo2, None, None) - check(bar1, 'NAME1', 'REF1') + check(bar1, 'BAR1_NAME', 'BAR1_REF') check(bar2, None, None) self.assertCountEqual(cache.get_missing_ids(foo1 + bar1, name), []) self.assertCountEqual(cache.get_missing_ids(foo2 + bar2, name), [1, 2]) # set values in both environments - for rec in [foo2, bar2]: - cache.set(rec, name, 'NAME2') - cache.set(rec, ref, 'REF2') - check(foo1, 'NAME1', 'REF1') - check(foo2, 'NAME2', 'REF2') - check(bar1, 'NAME1', 'REF1') - check(bar2, 'NAME2', 'REF2') + cache.set(foo2, name, 'FOO2_NAME') + cache.set(foo2, ref, 'FOO2_REF') + cache.set(bar2, name, 'BAR2_NAME') + cache.set(bar2, ref, 'BAR2_REF') + check(foo1, 'FOO1_NAME', 'FOO1_REF') + check(foo2, 'FOO2_NAME', 'FOO2_REF') + check(bar1, 'BAR1_NAME', 'BAR1_REF') + check(bar2, 'BAR2_NAME', 'BAR2_REF') self.assertCountEqual(cache.get_missing_ids(foo1 + bar1, name), []) self.assertCountEqual(cache.get_missing_ids(foo2 + bar2, name), []) # remove value in one environment cache.remove(foo1, name) - check(foo1, None, 'REF1') - check(foo2, 'NAME2', 'REF2') - check(bar1, 'NAME1', 'REF1') - check(bar2, 'NAME2', 'REF2') + check(foo1, None, 'FOO1_REF') + check(foo2, 'FOO2_NAME', 'FOO2_REF') + check(bar1, 'BAR1_NAME', 'BAR1_REF') + check(bar2, 'BAR2_NAME', 'BAR2_REF') self.assertCountEqual(cache.get_missing_ids(foo1 + bar1, name), [1]) self.assertCountEqual(cache.get_missing_ids(foo2 + bar2, name), []) @@ -85,8 +89,8 @@ class TestRecordCache(TransactionCase): cache.invalidate([(name, None), (ref, foo1.ids)]) check(foo1, None, None) check(foo2, None, None) - check(bar1, None, 'REF1') - check(bar2, None, 'REF2') + check(bar1, None, 'BAR1_REF') + check(bar2, None, 'BAR2_REF') # total invalidation cache.invalidate() @@ -96,28 +100,34 @@ class TestRecordCache(TransactionCase): check(bar2, None, None) # set a special value - cache.set_special(foo1, name, lambda: '42') + cache.set_special(foo1, name, lambda: 'FOO1_SPECIAL_NAME') self.assertTrue(cache.contains(foo1, name)) self.assertFalse(cache.contains_value(foo1, name)) - self.assertEqual(cache.get(foo1, name), '42') + self.assertEqual(cache.get(foo1, name), 'FOO1_SPECIAL_NAME') self.assertIsNone(cache.get_value(foo1, name)) self.assertIsNotNone(cache.get_special(foo1, name)) # copy cache - for rec in [foo1, bar1]: - cache.set(rec, name, 'NAME1') - cache.set(rec, ref, 'REF1') - check(foo1, 'NAME1', 'REF1') - check(foo2, None, None) - check(bar1, 'NAME1', 'REF1') + cache.set(foo1, name, 'FOO1_NAME') + cache.set(foo1, ref, 'FOO1_REF') + cache.set(bar1, name, 'BAR1_NAME') + cache.set(bar1, ref, 'BAR1_REF') + cache.set(foo2, name, 'FOO2_NAME') + check(foo1, 'FOO1_NAME', 'FOO1_REF') + check(foo2, 'FOO2_NAME', None) + check(bar1, 'BAR1_NAME', 'BAR1_REF') check(bar2, None, None) cache.copy(foo1 + bar1, foo2.env) - check(foo1, 'NAME1', 'REF1') - check(foo2, 'NAME1', 'REF1') - check(bar1, 'NAME1', 'REF1') - check(bar2, 'NAME1', 'REF1') - + check(foo1, 'FOO1_NAME', 'FOO1_REF') + check(foo2, 'FOO1_NAME', 'FOO1_REF') + check(bar1, 'BAR1_NAME', 'BAR1_REF') + check(bar2, 'BAR1_NAME', 'BAR1_REF') + + @unittest.skipIf( + not(platform.system() == 'Linux' and platform.machine() == 'x86_64'), + "This test only makes sense on 64-bit Linux-like systems", + ) def test_memory(self): """ Check memory consumption of the cache. """ NB_RECORDS = 100000 |
