From 7074b4928c2be867b375212db903a75f5a12ca70 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Thu, 19 May 2011 22:30:09 +0200 Subject: [PATCH] Add some tests for --list-settings formatting --- mopidy/utils/settings.py | 7 +++++-- tests/utils/settings_test.py | 35 +++++++++++++++++++++++++++++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/mopidy/utils/settings.py b/mopidy/utils/settings.py index 7f541c21..eeb5c32f 100644 --- a/mopidy/utils/settings.py +++ b/mopidy/utils/settings.py @@ -140,6 +140,10 @@ def list_settings_optparse_callback(*args): option. """ from mopidy import settings + print u'Settings: %s' % indent(format_settings_list(settings), places=2) + sys.exit(0) + +def format_settings_list(settings): errors = settings.get_errors() lines = [] for (key, value) in sorted(settings.current.iteritems()): @@ -151,8 +155,7 @@ def list_settings_optparse_callback(*args): lines.append(u' Default: %s' % repr(default_value)) if errors.get(key) is not None: lines.append(u' Error: %s' % errors[key]) - print u'Settings: %s' % indent('\n'.join(lines), places=2) - sys.exit(0) + return '\n'.join(lines) def mask_value_if_secret(key, value): if key.endswith('PASSWORD') and value: diff --git a/tests/utils/settings_test.py b/tests/utils/settings_test.py index 11914f61..f23ce06d 100644 --- a/tests/utils/settings_test.py +++ b/tests/utils/settings_test.py @@ -2,8 +2,8 @@ import os 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 +from mopidy.utils.settings import (format_settings_list, mask_value_if_secret, + SettingsProxy, validate_settings) class ValidateSettingsTest(unittest.TestCase): def setUp(self): @@ -140,3 +140,34 @@ class SettingsProxyTest(unittest.TestCase): self.settings.TEST = './test' actual = self.settings.TEST self.assertEqual(actual, './test') + + +class FormatSettingListTest(unittest.TestCase): + def setUp(self): + self.settings = SettingsProxy(default_settings_module) + + def test_contains_the_setting_name(self): + self.settings.TEST = u'test' + result = format_settings_list(self.settings) + self.assert_('TEST:' in result, result) + + def test_repr_of_a_string_value(self): + self.settings.TEST = u'test' + result = format_settings_list(self.settings) + self.assert_("Value: u'test'" in result, result) + + def test_repr_of_an_int_value(self): + self.settings.TEST = 123 + result = format_settings_list(self.settings) + self.assert_("Value: 123" in result, result) + + def test_repr_of_a_tuple_value(self): + self.settings.TEST = (123, u'abc') + result = format_settings_list(self.settings) + self.assert_("Value: (123, u'abc')" in result, result) + + def test_passwords_are_masked(self): + self.settings.TEST_PASSWORD = u'secret' + result = format_settings_list(self.settings) + self.assert_("Value: u'secret'" not in result, result) + self.assert_("Value: u'********'" in result, result)