diff options
author | Flaper Fesp <flaper87@gmail.com> | 2013-08-14 09:31:37 +0200 |
---|---|---|
committer | Flaper Fesp <flaper87@gmail.com> | 2013-08-14 10:27:08 +0200 |
commit | c280f6060c6bbc50e9f5f74232b3c45bccee2ec4 (patch) | |
tree | 50187f85763c8d0532b0d5d2fddcaf3b11b06788 /tests/test_cfg.py | |
parent | c85c8e6c4d5a921aa36a4774fe6bd8ab07d58fb3 (diff) | |
download | oslo-config-c280f6060c6bbc50e9f5f74232b3c45bccee2ec4.tar.gz |
Add auto-create support for OptGroup instances
Currently, it is possible to auto-create groups by passing a group name
to register_opt or register_opts. However, it is not possible to
auto-register groups when a OptGroup instance is passed instead.
This patch adds support for that to the _get_group method. There are
some advantages introduced by this patch:
* It keeps consistency of oslo.config's public API.
* It allow users to auto-register a group a group and
re-use the instance:
group = cfg.OptGroup("test")
cfg.register_opts(..., group=group)
# do something with the group
* It allows users to auto-register groups with descriptions.
DocImpact
Change-Id: I9b9a74688c906d6bdea9c42044b47dc52e48c19d
Diffstat (limited to 'tests/test_cfg.py')
-rw-r--r-- | tests/test_cfg.py | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/tests/test_cfg.py b/tests/test_cfg.py index 086e55b..785a57e 100644 --- a/tests/test_cfg.py +++ b/tests/test_cfg.py @@ -1347,7 +1347,7 @@ class OptGroupsTestCase(BaseTestCase): self.assertTrue(hasattr(self.conf.blaa, 'foo')) self.assertEqual(self.conf.blaa.foo, 'bar') - def test_autocreate_group(self): + def test_autocreate_group_by_name(self): self.conf.register_cli_opt(cfg.StrOpt('foo'), group='blaa') self.conf(['--blaa-foo', 'bar']) @@ -1356,6 +1356,16 @@ class OptGroupsTestCase(BaseTestCase): self.assertTrue(hasattr(self.conf.blaa, 'foo')) self.assertEqual(self.conf.blaa.foo, 'bar') + def test_autocreate_group_by_group(self): + group = cfg.OptGroup(name='blaa', title='Blaa options') + self.conf.register_cli_opt(cfg.StrOpt('foo'), group=group) + + self.conf(['--blaa-foo', 'bar']) + + self.assertTrue(hasattr(self.conf, 'blaa')) + self.assertTrue(hasattr(self.conf.blaa, 'foo')) + self.assertEqual(self.conf.blaa.foo, 'bar') + def test_autocreate_title(self): blaa_group = cfg.OptGroup('blaa') self.assertEqual(blaa_group.title, 'blaa options') @@ -2200,11 +2210,6 @@ class SadPathTestCase(BaseTestCase): self.conf.register_cli_opt(cfg.StrOpt('bar', short='f')) self.assertRaises(cfg.DuplicateOptError, self.conf, []) - def test_no_such_group(self): - group = cfg.OptGroup('blaa') - self.assertRaises(cfg.NoSuchGroupError, self.conf.register_cli_opt, - cfg.StrOpt('foo'), group=group) - def test_already_parsed(self): self.conf([]) |