diff --git a/mopidy/utils/settings.py b/mopidy/utils/settings.py index 6286c8b9..3145d278 100644 --- a/mopidy/utils/settings.py +++ b/mopidy/utils/settings.py @@ -51,7 +51,7 @@ class SettingsProxy(object): value = self.current[attr] if type(value) != bool and not value: raise SettingsError(u'Setting "%s" is empty.' % attr) - if attr.endswith('_PATH'): + if attr.endswith('_PATH') or attr.endswith('_FILE'): value = os.path.expanduser(value) value = os.path.abspath(value) return value diff --git a/tests/utils/settings_test.py b/tests/utils/settings_test.py index 3b1d7439..cef0069d 100644 --- a/tests/utils/settings_test.py +++ b/tests/utils/settings_test.py @@ -73,12 +73,30 @@ class SettingsProxyTest(unittest.TestCase): expected = os.path.expanduser('~/test') self.assertEqual(acctual, expected) - def test_value_not_ending_in_path_is_not_expanded(self): + def test_value_ending_in_path_is_absolute(self): + self.settings.TEST_PATH = './test' + acctual = self.settings.TEST_PATH + expected = os.path.abspath('./test') + self.assertEqual(acctual, expected) + + def test_value_ending_in_file_is_expanded(self): + self.settings.TEST_FILE = '~/test' + acctual = self.settings.TEST_FILE + expected = os.path.expanduser('~/test') + self.assertEqual(acctual, expected) + + def test_value_ending_in_file_is_absolute(self): + self.settings.TEST_FILE = './test' + acctual = self.settings.TEST_FILE + expected = os.path.abspath('./test') + self.assertEqual(acctual, expected) + + def test_value_not_ending_in_path_or_file_is_not_expanded(self): self.settings.TEST = '~/test' acctual = self.settings.TEST self.assertEqual(acctual, '~/test') - def test_value_not_ending_in_path_is_not_absolute(self): + def test_value_not_ending_in_path_or_file_is_not_absolute(self): self.settings.TEST = './test' acctual = self.settings.TEST self.assertEqual(acctual, './test')