From 19f9cb8c248534eca8c67d55da22fb404a6ae92c Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Mon, 11 Feb 2013 19:48:38 +0000 Subject: [PATCH] Fix key error in tests --- openlp/core/lib/settings.py | 3 +- .../openlp_core_lib/test_settings.py | 45 +++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/openlp/core/lib/settings.py b/openlp/core/lib/settings.py index ce41198c4..d75179d9f 100644 --- a/openlp/core/lib/settings.py +++ b/openlp/core/lib/settings.py @@ -322,7 +322,8 @@ class Settings(QtCore.QSettings): """ # if group() is not empty the group has not been specified together with the key. if self.group(): - default_value = Settings.__default_settings__[self.group() + u'/' + key] + qq = self.group() + u'/' + key + default_value = Settings.__default_settings__[unicode(self.group() + u'/' + key)] else: default_value = Settings.__default_settings__[key] setting = super(Settings, self).value(key, default_value) diff --git a/tests/functional/openlp_core_lib/test_settings.py b/tests/functional/openlp_core_lib/test_settings.py index 2cc0f2ee4..dfe6f4974 100644 --- a/tests/functional/openlp_core_lib/test_settings.py +++ b/tests/functional/openlp_core_lib/test_settings.py @@ -47,3 +47,48 @@ class TestSettings(TestCase): # THEN the new value is returned when re-read assert Settings().value(u'general/has run wizard') is True, u'The saved value is returned' + def settings_override_test(self): + """ + Test the Settings creation and its override usage + """ + # GIVEN: an override for the settings + screen_settings = { + u'test/extend': u'very wide', + } + Settings().extend_default_settings(screen_settings) + + # WHEN reading a setting for the first time + extend = Settings().value(u'test/extend') + + # THEN the default value is returned + assert extend == u'very wide', u'The default value defined is returned' + + # WHEN a new value is saved into config + Settings().setValue(u'test/extend', u'very short') + + # THEN the new value is returned when re-read + assert Settings().value(u'test/extend') == u'very short', u'The saved value is returned' + + def settings_override_with_group_test(self): + """ + Test the Settings creation and its override usage - with groups + """ + # GIVEN: an override for the settings + screen_settings = { + u'test/extend': u'very wide', + } + Settings.extend_default_settings(screen_settings) + + # WHEN reading a setting for the first time + settings = Settings() + settings.beginGroup(u'test') + extend = settings.value(u'extend') + + # THEN the default value is returned + assert extend == u'very wide', u'The default value defined is returned' + + # WHEN a new value is saved into config + Settings().setValue(u'test/extend', u'very short') + + # THEN the new value is returned when re-read + assert Settings().value(u'test/extend') == u'very short', u'The saved value is returned' \ No newline at end of file