Add some tests for --list-settings formatting

This commit is contained in:
Stein Magnus Jodal 2011-05-19 22:30:09 +02:00
parent e53e0aa78f
commit 7074b4928c
2 changed files with 38 additions and 4 deletions

View File

@ -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:

View File

@ -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)