summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-04-10 20:12:11 +0000
committerGerrit Code Review <review@openstack.org>2015-04-10 20:12:11 +0000
commit3ab403925e9cb2928ba8e893c4d0f4a6f4b27d72 (patch)
tree1341048aba93528c1f4ccb5f6a225f81cc6d2314
parentec4b6a69ccf6364227ce27545d1e9c4422f5453c (diff)
parente30131a1ef47fa5b8962cefbcf970de0dd6785fa (diff)
downloadoslo-config-1.10.0.tar.gz
Merge "Added Raw Value Loading to Test Fixture"1.10.0
-rw-r--r--oslo_config/fixture.py24
-rw-r--r--oslo_config/tests/test_fixture.py30
2 files changed, 54 insertions, 0 deletions
diff --git a/oslo_config/fixture.py b/oslo_config/fixture.py
index 02d570d..bb0f287 100644
--- a/oslo_config/fixture.py
+++ b/oslo_config/fixture.py
@@ -116,3 +116,27 @@ class Config(fixtures.Fixture):
"""
for opt in opts:
self.register_cli_opt(opt, group=group)
+
+ def load_raw_values(self, group=None, **kwargs):
+ """Load raw values into the configuration without registering them.
+
+ This method adds a series of parameters into the current config
+ instance, as if they had been loaded by a ConfigParser. This method
+ does not require that you register the configuration options first,
+ however the values loaded will not be accessible until you do.
+ """
+
+ # Make sure the namespace exists for our tests.
+ if not self.conf._namespace:
+ self.conf.__call__(args=[])
+
+ # Default out the group name
+ group = 'DEFAULT' if not group else group
+
+ raw_config = dict()
+ raw_config[group] = dict()
+ for key, value in six.iteritems(kwargs):
+ # Parsed values are an array of raw strings.
+ raw_config[group][key] = [str(value)]
+
+ self.conf._namespace._add_parsed_config_file(raw_config, raw_config)
diff --git a/oslo_config/tests/test_fixture.py b/oslo_config/tests/test_fixture.py
index 6d8b2a7..671bea9 100644
--- a/oslo_config/tests/test_fixture.py
+++ b/oslo_config/tests/test_fixture.py
@@ -85,3 +85,33 @@ class ConfigTestCase(base.BaseTestCase):
opt.default)
self.config_fixture.cleanUp()
self.assertRaises(cfg.NoSuchOptError, conf.get, 'new_test_opt')
+
+ def test_load_raw_values(self):
+ self.config_fixture.load_raw_values(first_test_opt='loaded_value_1',
+ second_test_opt='loaded_value_2')
+
+ # Must not be registered.
+ self.assertRaises(cfg.NoSuchOptError, conf.get, 'first_test_opt')
+ self.assertRaises(cfg.NoSuchOptError, conf.get, 'second_test_opt')
+
+ opt1 = cfg.StrOpt('first_test_opt', default='initial_value_1')
+ opt2 = cfg.StrOpt('second_test_opt', default='initial_value_2')
+
+ self.config_fixture.register_opt(opt1)
+ self.config_fixture.register_opt(opt2)
+
+ self.assertEqual(conf.first_test_opt, 'loaded_value_1')
+ self.assertEqual(conf.second_test_opt, 'loaded_value_2')
+
+ # Cleanup.
+ self.config_fixture.cleanUp()
+
+ # Must no longer be registered.
+ self.assertRaises(cfg.NoSuchOptError, conf.get, 'first_test_opt')
+ self.assertRaises(cfg.NoSuchOptError, conf.get, 'second_test_opt')
+
+ # Even when registered, must be default.
+ self.config_fixture.register_opt(opt1)
+ self.config_fixture.register_opt(opt2)
+ self.assertEqual(conf.first_test_opt, 'initial_value_1')
+ self.assertEqual(conf.second_test_opt, 'initial_value_2')