##// END OF EJS Templates
py3: replace list comprehension with for-loop due to scope...
py3: replace list comprehension with for-loop due to scope The scope of the list comprehension variable 'x' will be limited to the list comprehension in python3. Thus switching to a full loop (without this scope restriction) in preparation for python3.

File last commit:

r6279:bf3546d1 default
r6788:bfd7fc9a default
Show More
test_settings.py
43 lines | 1.7 KiB | text/x-python | PythonLexer
from kallithea.model.meta import Session
from kallithea.model.db import Setting
name = 'spam-setting-name'
def test_passing_list_setting_value_results_in_string_valued_setting():
assert Setting.get_by_name(name) is None
setting = Setting.create_or_update(name, ['spam', 'eggs'])
Session().flush() # must flush so we can delete it below
try:
assert Setting.get_by_name(name) is not None
# Quirk: list value is stringified.
assert Setting.get_by_name(name).app_settings_value \
== "['spam', 'eggs']"
assert Setting.get_by_name(name).app_settings_type == 'unicode'
finally:
Session().delete(setting)
def test_list_valued_setting_creation_requires_manual_value_formatting():
assert Setting.get_by_name(name) is None
# Quirk: need manual formatting of list setting value.
setting = Setting.create_or_update(name, 'spam,eggs', type='list')
Session().flush() # must flush so we can delete it below
try:
assert setting.app_settings_value == ['spam', 'eggs']
finally:
Session().delete(setting)
def test_list_valued_setting_update():
assert Setting.get_by_name(name) is None
setting = Setting.create_or_update(name, 'spam', type='list')
Session().flush() # must flush so we can delete it below
try:
assert setting.app_settings_value == [u'spam']
# Assign back setting value.
setting.app_settings_value = setting.app_settings_value
# Quirk: value is stringified on write and listified on read.
assert setting.app_settings_value == ["[u'spam']"]
setting.app_settings_value = setting.app_settings_value
assert setting.app_settings_value == ["[u\"[u'spam']\"]"]
finally:
Session().delete(setting)