From e2597ab23f636be74b29e11f083a36bfee6f1f69 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Sun, 17 Jul 2011 02:11:06 +0200 Subject: [PATCH] Fix minor bug in settings subsystem that prevented _FILE/PATH settings to be set to None --- mopidy/utils/settings.py | 2 ++ tests/utils/settings_test.py | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/mopidy/utils/settings.py b/mopidy/utils/settings.py index cab94089..3f7593af 100644 --- a/mopidy/utils/settings.py +++ b/mopidy/utils/settings.py @@ -53,6 +53,8 @@ class SettingsProxy(object): value = self.current[attr] if isinstance(value, basestring) and len(value) == 0: raise SettingsError(u'Setting "%s" is empty.' % attr) + if not value: + return value if attr.endswith('_PATH') or attr.endswith('_FILE'): value = os.path.expanduser(value) value = os.path.abspath(value) diff --git a/tests/utils/settings_test.py b/tests/utils/settings_test.py index 973c2280..ec470ea9 100644 --- a/tests/utils/settings_test.py +++ b/tests/utils/settings_test.py @@ -150,6 +150,14 @@ class SettingsProxyTest(unittest.TestCase): actual = self.settings.TEST self.assertEqual(actual, './test') + def test_value_ending_in_file_can_be_none(self): + self.settings.TEST_FILE = None + self.assertEqual(self.settings.TEST_FILE, None) + + def test_value_ending_in_path_can_be_none(self): + self.settings.TEST_PATH = None + self.assertEqual(self.settings.TEST_PATH, None) + def test_interactive_input_of_missing_defaults(self): self.settings.default['TEST'] = '' interactive_input = 'input'