fix fixture tests for fixtures 1.3.x

The latest releases of fixtures do not allow a fixture to be cleaned up
more than once, so rewrite the fixture tests to manage the fixture by
hand and not clean it up unless that is part of the test being run.

Change-Id: I1e2aaa59e713eca231a315860ef84bc272bbe280
This commit is contained in:
Doug Hellmann 2015-06-30 20:09:02 +00:00
parent 56073f066d
commit d86fd9b03f
2 changed files with 130 additions and 52 deletions
oslo_config/tests
tests

@ -20,75 +20,84 @@ from oslotest import base
from oslo_config import cfg
from oslo_config import fixture as config
conf = cfg.CONF
class ConfigTestCase(base.BaseTestCase):
def setUp(self):
super(ConfigTestCase, self).setUp()
self.config_fixture = self.useFixture(config.Config(conf))
self.config = self.config_fixture.config
self.config_fixture.register_opt(cfg.StrOpt(
def _make_fixture(self):
conf = cfg.ConfigOpts()
config_fixture = config.Config(conf)
config_fixture.setUp()
config_fixture.register_opt(cfg.StrOpt(
'testing_option', default='initial_value'))
return (config_fixture, conf)
def test_overridden_value(self):
f, conf = self._make_fixture()
self.assertEqual(conf.get('testing_option'), 'initial_value')
self.config(testing_option='changed_value')
f.config(testing_option='changed_value')
self.assertEqual(conf.get('testing_option'),
self.config_fixture.conf.get('testing_option'))
f.conf.get('testing_option'))
def test_cleanup(self):
self.config(testing_option='changed_value')
self.assertEqual(self.config_fixture.conf.get('testing_option'),
f, conf = self._make_fixture()
f.config(testing_option='changed_value')
self.assertEqual(f.conf.get('testing_option'),
'changed_value')
self.config_fixture.conf.reset()
f.conf.reset()
self.assertEqual(conf.get('testing_option'), 'initial_value')
def test_register_option(self):
f, conf = self._make_fixture()
opt = cfg.StrOpt('new_test_opt', default='initial_value')
self.config_fixture.register_opt(opt)
f.register_opt(opt)
self.assertEqual(conf.get('new_test_opt'),
opt.default)
def test_register_options(self):
f, conf = self._make_fixture()
opt1 = cfg.StrOpt('first_test_opt', default='initial_value_1')
opt2 = cfg.StrOpt('second_test_opt', default='initial_value_2')
self.config_fixture.register_opts([opt1, opt2])
f.register_opts([opt1, opt2])
self.assertEqual(conf.get('first_test_opt'), opt1.default)
self.assertEqual(conf.get('second_test_opt'), opt2.default)
def test_cleanup_unregister_option(self):
f, conf = self._make_fixture()
opt = cfg.StrOpt('new_test_opt', default='initial_value')
self.config_fixture.register_opt(opt)
f.register_opt(opt)
self.assertEqual(conf.get('new_test_opt'),
opt.default)
self.config_fixture.cleanUp()
f.cleanUp()
self.assertRaises(cfg.NoSuchOptError, conf.get, 'new_test_opt')
def test_register_cli_option(self):
f, conf = self._make_fixture()
opt = cfg.StrOpt('new_test_opt', default='initial_value')
self.config_fixture.register_cli_opt(opt)
f.register_cli_opt(opt)
self.assertEqual(conf.get('new_test_opt'),
opt.default)
def test_register_cli_options(self):
f, conf = self._make_fixture()
opt1 = cfg.StrOpt('first_test_opt', default='initial_value_1')
opt2 = cfg.StrOpt('second_test_opt', default='initial_value_2')
self.config_fixture.register_cli_opts([opt1, opt2])
f.register_cli_opts([opt1, opt2])
self.assertEqual(conf.get('first_test_opt'), opt1.default)
self.assertEqual(conf.get('second_test_opt'), opt2.default)
def test_cleanup_unregister_cli_option(self):
f, conf = self._make_fixture()
opt = cfg.StrOpt('new_test_opt', default='initial_value')
self.config_fixture.register_cli_opt(opt)
f.register_cli_opt(opt)
self.assertEqual(conf.get('new_test_opt'),
opt.default)
self.config_fixture.cleanUp()
f.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')
f, conf = self._make_fixture()
f.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')
@ -97,47 +106,49 @@ class ConfigTestCase(base.BaseTestCase):
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)
f.register_opt(opt1)
f.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()
f.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)
f.register_opt(opt1)
f.register_opt(opt2)
self.assertEqual(conf.first_test_opt, 'initial_value_1')
self.assertEqual(conf.second_test_opt, 'initial_value_2')
def test_assert_default_files_cleanup(self):
"""Assert that using the fixture forces a clean list."""
f, conf = self._make_fixture()
self.assertNotIn('default_config_files', conf)
config_files = ['./test_fixture.conf']
self.config_fixture.set_config_files(config_files)
f.set_config_files(config_files)
self.assertEqual(conf.default_config_files, config_files)
self.config_fixture.cleanUp()
f.cleanUp()
self.assertNotIn('default_config_files', conf)
def test_load_custom_files(self):
f, conf = self._make_fixture()
self.assertNotIn('default_config_files', conf)
config_files = ['./oslo_config/tests/test_fixture.conf']
self.config_fixture.set_config_files(config_files)
f.set_config_files(config_files)
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)
f.register_opt(opt1)
f.register_opt(opt2)
self.assertEqual('loaded_value_1', conf.get('first_test_opt'))
self.assertEqual('loaded_value_2', conf.get('second_test_opt'))

@ -20,68 +20,135 @@ from oslotest import base
from oslo.config import cfg
from oslo.config import fixture as config
conf = cfg.CONF
class ConfigTestCase(base.BaseTestCase):
def setUp(self):
super(ConfigTestCase, self).setUp()
self.config_fixture = self.useFixture(config.Config(conf))
self.config = self.config_fixture.config
self.config_fixture.register_opt(cfg.StrOpt(
def _make_fixture(self):
conf = cfg.ConfigOpts()
config_fixture = config.Config(conf)
config_fixture.setUp()
config_fixture.register_opt(cfg.StrOpt(
'testing_option', default='initial_value'))
return (config_fixture, conf)
def test_overridden_value(self):
f, conf = self._make_fixture()
self.assertEqual(conf.get('testing_option'), 'initial_value')
self.config(testing_option='changed_value')
f.config(testing_option='changed_value')
self.assertEqual(conf.get('testing_option'),
self.config_fixture.conf.get('testing_option'))
f.conf.get('testing_option'))
def test_cleanup(self):
self.config(testing_option='changed_value')
self.assertEqual(self.config_fixture.conf.get('testing_option'),
f, conf = self._make_fixture()
f.config(testing_option='changed_value')
self.assertEqual(f.conf.get('testing_option'),
'changed_value')
self.config_fixture.conf.reset()
f.conf.reset()
self.assertEqual(conf.get('testing_option'), 'initial_value')
def test_register_option(self):
f, conf = self._make_fixture()
opt = cfg.StrOpt('new_test_opt', default='initial_value')
self.config_fixture.register_opt(opt)
f.register_opt(opt)
self.assertEqual(conf.get('new_test_opt'),
opt.default)
def test_register_options(self):
f, conf = self._make_fixture()
opt1 = cfg.StrOpt('first_test_opt', default='initial_value_1')
opt2 = cfg.StrOpt('second_test_opt', default='initial_value_2')
self.config_fixture.register_opts([opt1, opt2])
f.register_opts([opt1, opt2])
self.assertEqual(conf.get('first_test_opt'), opt1.default)
self.assertEqual(conf.get('second_test_opt'), opt2.default)
def test_cleanup_unregister_option(self):
f, conf = self._make_fixture()
opt = cfg.StrOpt('new_test_opt', default='initial_value')
self.config_fixture.register_opt(opt)
f.register_opt(opt)
self.assertEqual(conf.get('new_test_opt'),
opt.default)
self.config_fixture.cleanUp()
f.cleanUp()
self.assertRaises(cfg.NoSuchOptError, conf.get, 'new_test_opt')
def test_register_cli_option(self):
f, conf = self._make_fixture()
opt = cfg.StrOpt('new_test_opt', default='initial_value')
self.config_fixture.register_cli_opt(opt)
f.register_cli_opt(opt)
self.assertEqual(conf.get('new_test_opt'),
opt.default)
def test_register_cli_options(self):
f, conf = self._make_fixture()
opt1 = cfg.StrOpt('first_test_opt', default='initial_value_1')
opt2 = cfg.StrOpt('second_test_opt', default='initial_value_2')
self.config_fixture.register_cli_opts([opt1, opt2])
f.register_cli_opts([opt1, opt2])
self.assertEqual(conf.get('first_test_opt'), opt1.default)
self.assertEqual(conf.get('second_test_opt'), opt2.default)
def test_cleanup_unregister_cli_option(self):
f, conf = self._make_fixture()
opt = cfg.StrOpt('new_test_opt', default='initial_value')
self.config_fixture.register_cli_opt(opt)
f.register_cli_opt(opt)
self.assertEqual(conf.get('new_test_opt'),
opt.default)
self.config_fixture.cleanUp()
f.cleanUp()
self.assertRaises(cfg.NoSuchOptError, conf.get, 'new_test_opt')
def test_load_raw_values(self):
f, conf = self._make_fixture()
f.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')
f.register_opt(opt1)
f.register_opt(opt2)
self.assertEqual(conf.first_test_opt, 'loaded_value_1')
self.assertEqual(conf.second_test_opt, 'loaded_value_2')
# Cleanup.
f.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.
f.register_opt(opt1)
f.register_opt(opt2)
self.assertEqual(conf.first_test_opt, 'initial_value_1')
self.assertEqual(conf.second_test_opt, 'initial_value_2')
def test_assert_default_files_cleanup(self):
"""Assert that using the fixture forces a clean list."""
f, conf = self._make_fixture()
self.assertNotIn('default_config_files', conf)
config_files = ['./test_fixture.conf']
f.set_config_files(config_files)
self.assertEqual(conf.default_config_files, config_files)
f.cleanUp()
self.assertNotIn('default_config_files', conf)
def test_load_custom_files(self):
f, conf = self._make_fixture()
self.assertNotIn('default_config_files', conf)
config_files = ['./oslo_config/tests/test_fixture.conf']
f.set_config_files(config_files)
opt1 = cfg.StrOpt('first_test_opt', default='initial_value_1')
opt2 = cfg.StrOpt('second_test_opt', default='initial_value_2')
f.register_opt(opt1)
f.register_opt(opt2)
self.assertEqual('loaded_value_1', conf.get('first_test_opt'))
self.assertEqual('loaded_value_2', conf.get('second_test_opt'))