diff options
| -rw-r--r-- | openstack/common/cfg.py | 12 | ||||
| -rw-r--r-- | tests/unit/test_cfg.py | 12 |
2 files changed, 18 insertions, 6 deletions
diff --git a/openstack/common/cfg.py b/openstack/common/cfg.py index e967c61..beba0a5 100644 --- a/openstack/common/cfg.py +++ b/openstack/common/cfg.py @@ -1572,12 +1572,12 @@ class ConfigOpts(collections.Mapping): :param conf: a ConfigOpts object :param group: an OptGroup object """ - self.conf = conf - self.group = group + self._conf = conf + self._group = group def __getattr__(self, name): """Look up an option value and perform template substitution.""" - return self.conf._get(name, self.group) + return self._conf._get(name, self._group) def __getitem__(self, key): """Look up an option value and perform string substitution.""" @@ -1585,16 +1585,16 @@ class ConfigOpts(collections.Mapping): def __contains__(self, key): """Return True if key is the name of a registered opt or group.""" - return key in self.group._opts + return key in self._group._opts def __iter__(self): """Iterate over all registered opt and group names.""" - for key in self.group._opts.keys(): + for key in self._group._opts.keys(): yield key def __len__(self): """Return the number of options and option groups.""" - return len(self.group._opts) + return len(self._group._opts) class StrSubWrapper(object): diff --git a/tests/unit/test_cfg.py b/tests/unit/test_cfg.py index 384a57a..4bfc37a 100644 --- a/tests/unit/test_cfg.py +++ b/tests/unit/test_cfg.py @@ -735,6 +735,18 @@ class OptGroupsTestCase(BaseTestCase): self.assertTrue(hasattr(self.conf.blaa, 'foo')) self.assertEquals(self.conf.blaa.foo, 'bar') + def test_arg_group_with_conf_and_group_opts(self): + self.conf.register_cli_opt(StrOpt('conf'), group='blaa') + self.conf.register_cli_opt(StrOpt('group'), group='blaa') + + self.conf(['--blaa-conf', 'foo', '--blaa-group', 'bar']) + + self.assertTrue(hasattr(self.conf, 'blaa')) + self.assertTrue(hasattr(self.conf.blaa, 'conf')) + self.assertEquals(self.conf.blaa.conf, 'foo') + self.assertTrue(hasattr(self.conf.blaa, 'group')) + self.assertEquals(self.conf.blaa.group, 'bar') + def test_arg_group_in_config_file(self): self.conf.register_group(OptGroup('blaa')) self.conf.register_opt(StrOpt('foo'), group='blaa') |
