diff options
author | Joe Gordon <jogo@cloudscaling.com> | 2012-05-21 18:17:35 -0700 |
---|---|---|
committer | Joe Gordon <jogo@cloudscaling.com> | 2012-06-06 13:15:25 -0700 |
commit | d1ec5ce4296bf4d56bd9101540b851f782721a1e (patch) | |
tree | 515fc8147e27aa4084eccbfc5273c9e1857f7de2 /tests/unit/test_cfg.py | |
parent | bdc4fb3183d455f00870981f5b9a200cc1b8b3f1 (diff) | |
download | oslo-d1ec5ce4296bf4d56bd9101540b851f782721a1e.tar.gz oslo-d1ec5ce4296bf4d56bd9101540b851f782721a1e.tar.xz oslo-d1ec5ce4296bf4d56bd9101540b851f782721a1e.zip |
Add support to include config aliases
Implements blueprint config-aliases
* Supports loading deprecated aliased options from a config file
* Supports using deprecated aliased CLI options
* For MultiStrOpt Can use mix of name and alias
Change-Id: I04678880bc8ee1f85335f5656367bd1437245c6e
Diffstat (limited to 'tests/unit/test_cfg.py')
-rw-r--r-- | tests/unit/test_cfg.py | 145 |
1 files changed, 144 insertions, 1 deletions
diff --git a/tests/unit/test_cfg.py b/tests/unit/test_cfg.py index b31eb38..25cf57e 100644 --- a/tests/unit/test_cfg.py +++ b/tests/unit/test_cfg.py @@ -172,7 +172,8 @@ class FindConfigFilesTestCase(BaseTestCase): class CliOptsTestCase(BaseTestCase): def _do_cli_test(self, opt_class, default, cli_args, value): - self.conf.register_cli_opt(opt_class('foo', default=default)) + self.conf.register_cli_opt(opt_class('foo', default=default, + deprecated_name='oldfoo')) self.conf(cli_args) @@ -185,27 +186,42 @@ class CliOptsTestCase(BaseTestCase): def test_str_arg(self): self._do_cli_test(StrOpt, None, ['--foo', 'bar'], 'bar') + def test_str_arg_deprecated(self): + self._do_cli_test(StrOpt, None, ['--oldfoo', 'bar'], 'bar') + def test_bool_default(self): self._do_cli_test(BoolOpt, False, [], False) def test_bool_arg(self): self._do_cli_test(BoolOpt, None, ['--foo'], True) + def test_bool_arg_deprecated(self): + self._do_cli_test(BoolOpt, None, ['--oldfoo'], True) + def test_bool_arg_inverse(self): self._do_cli_test(BoolOpt, None, ['--foo', '--nofoo'], False) + def test_bool_arg_inverse_deprecated(self): + self._do_cli_test(BoolOpt, None, ['--oldfoo', '--nooldfoo'], False) + def test_int_default(self): self._do_cli_test(IntOpt, 10, [], 10) def test_int_arg(self): self._do_cli_test(IntOpt, None, ['--foo=20'], 20) + def test_int_arg_deprecated(self): + self._do_cli_test(IntOpt, None, ['--oldfoo=20'], 20) + def test_float_default(self): self._do_cli_test(FloatOpt, 1.0, [], 1.0) def test_float_arg(self): self._do_cli_test(FloatOpt, None, ['--foo', '2.0'], 2.0) + def test_float_arg_deprecated(self): + self._do_cli_test(FloatOpt, None, ['--oldfoo', '2.0'], 2.0) + def test_list_default(self): self._do_cli_test(ListOpt, ['bar'], [], ['bar']) @@ -213,6 +229,10 @@ class CliOptsTestCase(BaseTestCase): self._do_cli_test(ListOpt, None, ['--foo', 'blaa,bar'], ['blaa', 'bar']) + def test_list_arg_deprecated(self): + self._do_cli_test(ListOpt, None, + ['--oldfoo', 'blaa,bar'], ['blaa', 'bar']) + def test_multistr_default(self): self._do_cli_test(MultiStrOpt, ['bar'], [], ['bar']) @@ -220,6 +240,11 @@ class CliOptsTestCase(BaseTestCase): self._do_cli_test(MultiStrOpt, None, ['--foo', 'blaa', '--foo', 'bar'], ['blaa', 'bar']) + def test_multistr_arg_deprecated(self): + self._do_cli_test(MultiStrOpt, None, + ['--oldfoo', 'blaa', '--oldfoo', 'bar'], + ['blaa', 'bar']) + def test_help(self): self.stubs.Set(sys, 'stdout', StringIO.StringIO()) self.assertRaises(SystemExit, self.conf, ['--help']) @@ -256,6 +281,28 @@ class CliOptsTestCase(BaseTestCase): class ConfigFileOptsTestCase(BaseTestCase): + def _do_deprecated_test_use(self, opt_class, value, result): + self.conf.register_opt(opt_class('newfoo', deprecated_name='oldfoo')) + + paths = self.create_tempfiles([('test', + '[DEFAULT]\n' + 'oldfoo = %s\n' % value)]) + + self.conf(['--config-file', paths[0]]) + self.assertTrue(hasattr(self.conf, 'newfoo')) + self.assertEquals(self.conf.newfoo, result) + + def _do_deprecated_test_ignore(self, opt_class, value, result): + self.conf.register_opt(opt_class('newfoo', deprecated_name='oldfoo')) + + paths2 = self.create_tempfiles([('test', + '[DEFAULT]\n' + 'newfoo = %s\n' % value)]) + + self.conf(['--config-file', paths2[0]]) + self.assertTrue(hasattr(self.conf, 'newfoo')) + self.assertEquals(self.conf.newfoo, result) + def test_conf_file_str_default(self): self.conf.register_opt(StrOpt('foo', default='bar')) @@ -296,6 +343,31 @@ class ConfigFileOptsTestCase(BaseTestCase): self.assertTrue(hasattr(self.conf, 'foo')) self.assertEquals(self.conf.foo, 'baaar') + def test_conf_file_str_value_override_use_deprecated(self): + """last option should always win, even if last uses deprecated""" + self.conf.register_cli_opt(StrOpt('newfoo', deprecated_name='oldfoo')) + + paths = self.create_tempfiles([('0', + '[DEFAULT]\n' + 'newfoo = middle\n'), + ('1', + '[DEFAULT]\n' + 'oldfoo = last\n')]) + + self.conf(['--newfoo', 'first', + '--config-file', paths[0], + '--config-file', paths[1]]) + + self.assertTrue(hasattr(self.conf, 'newfoo')) + self.assertFalse(hasattr(self.conf, 'oldfoo')) + self.assertEquals(self.conf.newfoo, 'last') + + def test_conf_file_str_use_deprecated(self): + self._do_deprecated_test_use(StrOpt, 'value1', 'value1') + + def test_conf_file_str_ignore_deprecated(self): + self._do_deprecated_test_ignore(StrOpt, 'value2', 'value2') + def test_conf_file_bool_default(self): self.conf.register_opt(BoolOpt('foo', default=False)) @@ -336,6 +408,12 @@ class ConfigFileOptsTestCase(BaseTestCase): self.assertTrue(hasattr(self.conf, 'foo')) self.assertEquals(self.conf.foo, True) + def test_conf_file_bool_use_deprecated(self): + self._do_deprecated_test_use(BoolOpt, 'yes', True) + + def test_conf_file_bool_ignore_deprecated(self): + self._do_deprecated_test_ignore(BoolOpt, 'no', False) + def test_conf_file_int_default(self): self.conf.register_opt(IntOpt('foo', default=666)) @@ -376,6 +454,12 @@ class ConfigFileOptsTestCase(BaseTestCase): self.assertTrue(hasattr(self.conf, 'foo')) self.assertEquals(self.conf.foo, 666) + def test_conf_file_int_use_deprecated(self): + self._do_deprecated_test_use(IntOpt, '66', 66) + + def test_conf_file_int_ignore_deprecated(self): + self._do_deprecated_test_ignore(IntOpt, '64', 64) + def test_conf_file_float_default(self): self.conf.register_opt(FloatOpt('foo', default=6.66)) @@ -416,6 +500,12 @@ class ConfigFileOptsTestCase(BaseTestCase): self.assertTrue(hasattr(self.conf, 'foo')) self.assertEquals(self.conf.foo, 6.66) + def test_conf_file_float_use_deprecated(self): + self._do_deprecated_test_use(FloatOpt, '66.54', 66.54) + + def test_conf_file_float_ignore_deprecated(self): + self._do_deprecated_test_ignore(FloatOpt, '64.54', 64.54) + def test_conf_file_list_default(self): self.conf.register_opt(ListOpt('foo', default=['bar'])) @@ -456,6 +546,12 @@ class ConfigFileOptsTestCase(BaseTestCase): self.assertTrue(hasattr(self.conf, 'foo')) self.assertEquals(self.conf.foo, ['b', 'a', 'r']) + def test_conf_file_list_use_deprecated(self): + self._do_deprecated_test_use(ListOpt, 'a,b,c', ['a', 'b', 'c']) + + def test_conf_file_list_ignore_deprecated(self): + self._do_deprecated_test_ignore(ListOpt, 'd,e,f', ['d', 'e', 'f']) + def test_conf_file_multistr_default(self): self.conf.register_opt(MultiStrOpt('foo', default=['bar'])) @@ -479,6 +575,26 @@ class ConfigFileOptsTestCase(BaseTestCase): self.assertTrue(hasattr(self.conf, 'foo')) self.assertEquals(self.conf.foo, ['bar']) + def test_conf_file_multistr_values_append_deprecated(self): + self.conf.register_cli_opt(MultiStrOpt('foo', + deprecated_name='oldfoo')) + + paths = self.create_tempfiles([('1', + '[DEFAULT]\n' + 'foo = bar1\n'), + ('2', + '[DEFAULT]\n' + 'oldfoo = bar2\n' + 'oldfoo = bar3\n')]) + + self.conf(['--foo', 'bar0', + '--config-file', paths[0], + '--config-file', paths[1]]) + + self.assertTrue(hasattr(self.conf, 'foo')) + + self.assertEquals(self.conf.foo, ['bar0', 'bar1', 'bar2', 'bar3']) + def test_conf_file_multistr_values_append(self): self.conf.register_cli_opt(MultiStrOpt('foo')) @@ -498,6 +614,18 @@ class ConfigFileOptsTestCase(BaseTestCase): self.assertEquals(self.conf.foo, ['bar0', 'bar1', 'bar2', 'bar3']) + def test_conf_file_multistr_deprecated(self): + self.conf.register_opt(MultiStrOpt('newfoo', deprecated_name='oldfoo')) + + paths = self.create_tempfiles([('test', + '[DEFAULT]\n' + 'oldfoo= bar1\n' + 'oldfoo = bar2\n')]) + + self.conf(['--config-file', paths[0]]) + self.assertTrue(hasattr(self.conf, 'newfoo')) + self.assertEquals(self.conf.newfoo, ['bar1', 'bar2']) + def test_conf_file_multiple_opts(self): self.conf.register_opts([StrOpt('foo'), StrOpt('bar')]) @@ -582,6 +710,21 @@ class OptGroupsTestCase(BaseTestCase): self.assertTrue(hasattr(self.conf.blaa, 'foo')) self.assertEquals(self.conf.blaa.foo, 'bar') + def test_arg_group_in_config_file_with_deprecated(self): + self.conf.register_group(OptGroup('blaa')) + self.conf.register_opt(StrOpt('foo', deprecated_name='oldfoo'), + group='blaa') + + paths = self.create_tempfiles([('test', + '[blaa]\n' + 'oldfoo = bar\n')]) + + self.conf(['--config-file', paths[0]]) + + self.assertTrue(hasattr(self.conf, 'blaa')) + self.assertTrue(hasattr(self.conf.blaa, 'foo')) + self.assertEquals(self.conf.blaa.foo, 'bar') + class MappingInterfaceTestCase(BaseTestCase): |