From c345b0c693303666ca35f04491c435a4dfc25f2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Thu, 23 Sep 2021 10:15:16 +0200 Subject: [PATCH] Use tuple in Dict value instead of list issue10715 review371771002 --- CHANGELOG | 1 + trytond/model/fields/dict.py | 3 +++ trytond/tests/test_field_dict.py | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index d8dab1156f..746239b64d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Use tuple in Dict value instead of list * Do not set record name on title of report get_email * Add node to id of status * Use ImmutableDict for Transaction context diff --git a/trytond/model/fields/dict.py b/trytond/model/fields/dict.py index 7fd26241b3..758956cd9f 100644 --- a/trytond/model/fields/dict.py +++ b/trytond/model/fields/dict.py @@ -42,6 +42,9 @@ class Dict(Field): # If stored as JSON conversion is done on backend if isinstance(data, str): data = json.loads(data, object_hook=JSONDecoder()) + for key, val in data.items(): + if isinstance(val, list): + data[key] = tuple(val) dicts[value['id']] = ImmutableDict(data) return dicts diff --git a/trytond/tests/test_field_dict.py b/trytond/tests/test_field_dict.py index 280c50ccf5..948947e955 100644 --- a/trytond/tests/test_field_dict.py +++ b/trytond/tests/test_field_dict.py @@ -150,7 +150,7 @@ class FieldDictTestCase(unittest.TestCase): 'dico': {'countries': ['fr', 'be']}, }]) - self.assertDictEqual(dict_.dico, {'countries': ['be', 'fr']}) + self.assertDictEqual(dict_.dico, {'countries': ('be', 'fr')}) @with_transaction() def test_invalid_selection_schema(self):