summaryrefslogtreecommitdiff
path: root/cliapp/settings_tests.py
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2011-08-29 17:40:23 +0100
committerLars Wirzenius <liw@liw.fi>2011-08-29 17:40:23 +0100
commit1b064a125aadc6fb4bbd61b6bfad897aa87382ab (patch)
tree224be5dfc5c44760c86554f043686dad8ae68cf1 /cliapp/settings_tests.py
parentd94a679d0783e69dfd590b8bda098e6467ce25d1 (diff)
downloadcliapp-1b064a125aadc6fb4bbd61b6bfad897aa87382ab.tar.gz
Add test case for desired behavior of options overriding values from config files.
Diffstat (limited to 'cliapp/settings_tests.py')
-rw-r--r--cliapp/settings_tests.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/cliapp/settings_tests.py b/cliapp/settings_tests.py
index b0e87fe..7201961 100644
--- a/cliapp/settings_tests.py
+++ b/cliapp/settings_tests.py
@@ -284,6 +284,23 @@ bar = ping, pong
self.assertEqual(self.settings['foo'], 'yeehaa')
self.assertEqual(self.settings['bar'], ['ping', 'pong'])
+ def test_handles_values_from_config_files_overridden_on_command_line(self):
+
+ def mock_open(filename, mode=None):
+ return StringIO.StringIO('''\
+[config]
+foo = yeehaa
+bar = ping, pong
+''')
+
+ self.settings.string(['foo'], 'foo help', default='foo')
+ self.settings.string_list(['bar'], 'bar help', default=['bar'])
+ self.settings.config_files = ['whatever.conf']
+ self.settings.load_configs(open=mock_open)
+ self.settings.parse_args(['--foo=red', '--bar=blue', '--bar=white'])
+ self.assertEqual(self.settings['foo'], 'red')
+ self.assertEqual(self.settings['bar'], ['blue', 'white'])
+
def test_load_configs_ignore_errors_opening_a_file(self):
def mock_open(filename, mode=None):