From f33c65ddfee414258bfeb473fd7be73f553e7878 Mon Sep 17 00:00:00 2001 From: Martins Grunskis Date: Wed, 9 Feb 2011 17:05:29 +0200 Subject: [PATCH] mopidy --list-settings fails on fresh install --- mopidy/utils/settings.py | 11 +++++++++-- tests/utils/settings_test.py | 8 ++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/mopidy/utils/settings.py b/mopidy/utils/settings.py index 7715721e..dace1495 100644 --- a/mopidy/utils/settings.py +++ b/mopidy/utils/settings.py @@ -129,6 +129,14 @@ def validate_settings(defaults, settings): return errors +def mask_value_if_secret(key, value): + masked_value = value + + if key.endswith('PASSWORD') and value: + masked_value = u'********' + + return masked_value + def list_settings_optparse_callback(*args): """ Prints a list of all settings. @@ -141,8 +149,7 @@ def list_settings_optparse_callback(*args): lines = [] for (key, value) in sorted(settings.current.iteritems()): default_value = settings.default.get(key) - if key.endswith('PASSWORD') and len(value): - value = u'********' + value = mask_value_if_secret(key, value) lines.append(u'%s:' % key) lines.append(u' Value: %s' % repr(value)) if value != default_value and default_value is not None: diff --git a/tests/utils/settings_test.py b/tests/utils/settings_test.py index 77500190..46efe9e3 100644 --- a/tests/utils/settings_test.py +++ b/tests/utils/settings_test.py @@ -3,6 +3,7 @@ import unittest from mopidy import settings as default_settings_module, SettingsError from mopidy.utils.settings import validate_settings, SettingsProxy +from mopidy.utils.settings import mask_value_if_secret class ValidateSettingsTest(unittest.TestCase): def setUp(self): @@ -46,6 +47,13 @@ class ValidateSettingsTest(unittest.TestCase): {'FOO': '', 'BAR': ''}) self.assertEquals(len(result), 2) + def test_mask_if_secret(self): + not_secret = mask_value_if_secret('SPOTIFY_USERNAME', 'foo') + self.assertEquals('foo', not_secret) + + secret = mask_value_if_secret('SPOTIFY_PASSWORD', 'bar') + self.assertEquals(u'********', secret) + class SettingsProxyTest(unittest.TestCase): def setUp(self):