diff --git a/src/dexterity/localroles/browser/settings.py b/src/dexterity/localroles/browser/settings.py index 7da200f..759d646 100644 --- a/src/dexterity/localroles/browser/settings.py +++ b/src/dexterity/localroles/browser/settings.py @@ -186,7 +186,7 @@ def convert_to_dict(value): value_dict = {} for row in value: state, roles, principal = row['state'], row['roles'], row['value'] - related = row['related'] is not None and row['related'].strip() or '' + related = row['related'] is not None and row['related'].strip() and str(eval(row['related'])) or '' if state not in value_dict: value_dict[state] = {} value_dict[state][principal] = {'roles': roles, 'rel': related} diff --git a/src/dexterity/localroles/browser/tests/test_settings.py b/src/dexterity/localroles/browser/tests/test_settings.py index 7621bd1..d4e28db 100644 --- a/src/dexterity/localroles/browser/tests/test_settings.py +++ b/src/dexterity/localroles/browser/tests/test_settings.py @@ -71,5 +71,5 @@ def __init__(self, fti): dict_values = {'private': {'raptor': {'roles': ('Reader', 'Contributor'), 'rel': ''}, 'caveman': {'roles': ('Reader', ), 'rel': ''}}, 'pending': {'caveman': {'roles': ('Contributor', ), 'rel': ''}}} - self.assertEqual(dict_values, cls.convert_to_dict(values)) + self.assertDictEqual(dict_values, cls.convert_to_dict(values)) self.assertItemsEqual(values, cls.convert_to_list(dict_values))