Skip to content

Commit 0142136

Browse files
committed
[ADD] tests: test change_field_selection_values
Add a test for util.change_field_selection_values where the selection is also a default value.
1 parent 52c6ee6 commit 0142136

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

src/base/tests/test_util.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,6 +1131,25 @@ def test_invert_boolean_field(self):
11311131
initial_repartition[False] += initial_repartition.pop(None, 0)
11321132
self.assertEqual(back_repartition, initial_repartition)
11331133

1134+
def test_change_field_selection_with_default(self):
1135+
cr = self.env.cr
1136+
lang = self.env["res.lang"].create({"name": "Elvish", "code": "el_VISH", "active": True})
1137+
if util.table_exists(cr, "ir_default"):
1138+
self.env["ir.default"].set("res.partner", "lang", "el_VISH")
1139+
else:
1140+
self.env["ir.values"].set_default("res.partner", "lang", "el_VISH")
1141+
util.flush(lang)
1142+
partner = self.env["res.partner"].create({"name": "Gandalf"})
1143+
self.assertEqual(partner.lang, "el_VISH")
1144+
1145+
util.invalidate(partner)
1146+
util.clear_cache(partner)
1147+
util.change_field_selection_values(cr, "res.partner", "lang", {"el_VISH": "en_US"})
1148+
self.assertEqual(partner.lang, "en_US")
1149+
1150+
partner2 = self.env["res.partner"].create({"name": "Frodo"})
1151+
self.assertEqual(partner2.lang, "en_US")
1152+
11341153

11351154
class TestHelpers(UnitTestCase):
11361155
def test_model_table_conversion(self):

src/util/orm.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,14 @@ def invalidate(records, *args):
229229
((env and getattr(records.env, "invalidate_all", None)) or records.invalidate_cache)(*args)
230230

231231

232+
def clear_cache(records):
233+
env = getattr(records, "env", None)
234+
(
235+
(env and getattr(records.env, "registry", None) and getattr(records.env.registry, "clear_cache", None))
236+
or records.clear_caches
237+
)()
238+
239+
232240
def no_selection_cache_validation(f=None):
233241
if not version_gte("8.0"):
234242
return f

0 commit comments

Comments
 (0)