diff options
author | Lars Wirzenius <liw@liw.fi> | 2011-06-11 20:34:10 +0100 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2011-06-11 20:34:10 +0100 |
commit | 54c14378f5522720ec06e9196e2b06e67b81377e (patch) | |
tree | 0bf7a98ba08e4f2be210c2e47b6491e8d32b718e /cliapp/settings_tests.py | |
parent | 9a0f44e7a57178105ebd84b6a0d057b1a2443925 (diff) | |
download | cliapp-54c14378f5522720ec06e9196e2b06e67b81377e.tar.gz |
Fix string lists to have a sensible default value handling.
Previously, if you set a default value for a string list
setting, the user's settings were appended to it. Now the
default is used if the user does not specify the setting
at all (same as before), but ignored if the user does
specify. Thus, if the default for foo was ['bar'], then
--foo=pink now results in ['pink'], rather than
['bar', 'pink'].
Diffstat (limited to 'cliapp/settings_tests.py')
-rw-r--r-- | cliapp/settings_tests.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/cliapp/settings_tests.py b/cliapp/settings_tests.py index 78be104..05fa7a6 100644 --- a/cliapp/settings_tests.py +++ b/cliapp/settings_tests.py @@ -81,6 +81,16 @@ class SettingsTests(unittest.TestCase): self.settings.parse_args(['--foo=foo', '--foo', 'bar']) self.assertEqual(self.settings['foo'], ['foo', 'bar']) + def test_string_list_uses_nonempty_default_if_given(self): + self.settings.add_string_list_setting(['foo'], '', default=['bar']) + self.settings.parse_args([]) + self.assertEqual(self.settings['foo'], ['bar']) + + def test_string_list_uses_ignores_default_if_user_provides_values(self): + self.settings.add_string_list_setting(['foo'], '', default=['bar']) + self.settings.parse_args(['--foo=pink', '--foo=punk']) + self.assertEqual(self.settings['foo'], ['pink', 'punk']) + def test_adds_choice_setting(self): self.settings.add_choice_setting(['foo'], ['foo', 'bar'], 'foo help') self.assert_('foo' in self.settings) |