summaryrefslogtreecommitdiffstats
path: root/tests/unit
diff options
context:
space:
mode:
authorMark McLoughlin <markmc@redhat.com>2012-01-12 07:04:39 +0000
committerMark McLoughlin <markmc@redhat.com>2012-01-12 07:40:24 +0000
commit35aa7a3485fe8ca19b4f7e4af6517b668404bc48 (patch)
tree939d6d7a5642a93a9f2b003d51b7a2b92430c7b7 /tests/unit
parentd567e9a31392aace25216b3f02f95552b8d43472 (diff)
Get cfg test cases to 100%
* Test cfg.find_config_files() sys.argv usage * Test boolean values in cfg config files * Finish off incomplete cfg bad value test case * Test register_opts() and register_cli_opts() * Test the quiet ignoring of option/group re-registration * Test cfg print_usage() * Test explicit option group titles Change-Id: Icbe4b7c48d4785551f06873821d1be758adf942c
Diffstat (limited to 'tests/unit')
-rw-r--r--tests/unit/test_cfg.py96
1 files changed, 91 insertions, 5 deletions
diff --git a/tests/unit/test_cfg.py b/tests/unit/test_cfg.py
index c2cf310..2ca1182 100644
--- a/tests/unit/test_cfg.py
+++ b/tests/unit/test_cfg.py
@@ -93,11 +93,18 @@ class BaseTestCase(unittest.TestCase):
os.remove(p)
+class UsageTestCase(BaseTestCase):
+
+ def test_print_usage(self):
+ f = StringIO.StringIO()
+ self.conf.print_usage(file=f)
+ self.assertTrue('Usage: test FOO BAR' in f.getvalue())
+
+
class LeftoversTestCase(BaseTestCase):
def test_leftovers(self):
- self.conf.register_cli_opt(StrOpt('foo'))
- self.conf.register_cli_opt(StrOpt('bar'))
+ self.conf.register_cli_opts([StrOpt('foo'), StrOpt('bar')])
leftovers = self.conf(['those', '--foo', 'this',
'thems', '--bar', 'that', 'these'])
@@ -111,10 +118,10 @@ class FindConfigFilesTestCase(BaseTestCase):
config_files = \
[os.path.expanduser('~/.blaa/blaa.conf'), '/etc/foo.conf']
+ self.stubs.Set(sys, 'argv', ['foo'])
self.stubs.Set(os.path, 'exists', lambda p: p in config_files)
- self.assertEquals(find_config_files(project='blaa', prog='foo'),
- config_files)
+ self.assertEquals(find_config_files(project='blaa'), config_files)
class CliOptsTestCase(BaseTestCase):
@@ -232,6 +239,46 @@ class ConfigFileOptsTestCase(BaseTestCase):
self.assertTrue(hasattr(self.conf, 'foo'))
self.assertEquals(self.conf.foo, 'baaar')
+ def test_conf_file_bool_default(self):
+ self.conf.register_opt(BoolOpt('foo', default=False))
+
+ paths = self.create_tempfiles([('test.conf',
+ '[DEFAULT]\n')])
+
+ self.conf(['--config-file', paths[0]])
+
+ self.assertTrue(hasattr(self.conf, 'foo'))
+ self.assertEquals(self.conf.foo, False)
+
+ def test_conf_file_bool_value(self):
+ self.conf.register_opt(BoolOpt('foo'))
+
+ paths = self.create_tempfiles([('test.conf',
+ '[DEFAULT]\n'
+ 'foo = true\n')])
+
+ self.conf(['--config-file', paths[0]])
+
+ self.assertTrue(hasattr(self.conf, 'foo'))
+ self.assertEquals(self.conf.foo, True)
+
+ def test_conf_file_bool_value_override(self):
+ self.conf.register_cli_opt(BoolOpt('foo'))
+
+ paths = self.create_tempfiles([('1.conf',
+ '[DEFAULT]\n'
+ 'foo = 0\n'),
+ ('2.conf',
+ '[DEFAULT]\n'
+ 'foo = yes\n')])
+
+ self.conf(['--foo', 'bar',
+ '--config-file', paths[0],
+ '--config-file', paths[1]])
+
+ self.assertTrue(hasattr(self.conf, 'foo'))
+ self.assertEquals(self.conf.foo, True)
+
def test_conf_file_int_default(self):
self.conf.register_opt(IntOpt('foo', default=666))
@@ -395,11 +442,26 @@ class ConfigFileOptsTestCase(BaseTestCase):
# config files should be appended
# self.assertEquals(self.conf.foo, ['bar', 'bar', 'bar'])
+ def test_conf_file_multiple_opts(self):
+ self.conf.register_opts([StrOpt('foo'), StrOpt('bar')])
+
+ paths = self.create_tempfiles([('test.conf',
+ '[DEFAULT]\n'
+ 'foo = bar\n'
+ 'bar = foo\n')])
+
+ self.conf(['--config-file', paths[0]])
+
+ self.assertTrue(hasattr(self.conf, 'foo'))
+ self.assertEquals(self.conf.foo, 'bar')
+ self.assertTrue(hasattr(self.conf, 'bar'))
+ self.assertEquals(self.conf.bar, 'foo')
+
class OptGroupsTestCase(BaseTestCase):
def test_arg_group(self):
- blaa_group = OptGroup('blaa')
+ blaa_group = OptGroup('blaa', 'blaa options')
self.conf.register_group(blaa_group)
self.conf.register_cli_opt(StrOpt('foo'), group=blaa_group)
@@ -444,6 +506,22 @@ class OptGroupsTestCase(BaseTestCase):
self.assertEquals(self.conf.blaa.foo, 'bar')
+class ReRegisterOptTestCase(BaseTestCase):
+
+ def test_conf_file_re_register_opt(self):
+ opt = StrOpt('foo')
+ self.assertTrue(self.conf.register_opt(opt))
+ self.assertFalse(self.conf.register_opt(opt))
+
+ def test_conf_file_re_register_opt_in_group(self):
+ group = OptGroup('blaa')
+ self.conf.register_group(group)
+ self.conf.register_group(group) # not an error
+ opt = StrOpt('foo')
+ self.assertTrue(self.conf.register_opt(opt, group=group))
+ self.assertFalse(self.conf.register_opt(opt, group='blaa'))
+
+
class TemplateSubstitutionTestCase(BaseTestCase):
def _prep_test_str_sub(self, foo_default=None, bar_default=None):
@@ -721,6 +799,14 @@ class SadPathTestCase(BaseTestCase):
def _do_test_conf_file_bad_value(self, opt_class):
self.conf.register_opt(opt_class('foo'))
+ paths = self.create_tempfiles([('test.conf',
+ '[DEFAULT]\n'
+ 'foo = bar\n')])
+
+ self.conf(['--config-file', paths[0]])
+
+ self.assertRaises(ConfigFileValueError, getattr, self.conf, 'foo')
+
def test_conf_file_bad_bool(self):
self._do_test_conf_file_bad_value(BoolOpt)