diff options
Diffstat (limited to 'keystone/test.py')
-rw-r--r-- | keystone/test.py | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/keystone/test.py b/keystone/test.py index 2c2be577..d06ea4c5 100644 --- a/keystone/test.py +++ b/keystone/test.py @@ -38,6 +38,7 @@ environment.use_eventlet() from keystone import assignment from keystone import catalog +from keystone.common import dependency from keystone.common import kvs from keystone.common import logging from keystone.common import sql @@ -51,6 +52,7 @@ from keystone import identity from keystone.openstack.common import timeutils from keystone import policy from keystone import token +from keystone.token import provider as token_provider from keystone import trust @@ -240,6 +242,11 @@ class TestCase(NoModule, unittest.TestCase): for path in self._paths: if path in sys.path: sys.path.remove(path) + + # Clear the registry of providers so that providers from previous + # tests aren't used. + dependency.reset() + kvs.INMEMDB.clear() CONF.reset() @@ -253,8 +260,14 @@ class TestCase(NoModule, unittest.TestCase): def load_backends(self): """Initializes each manager and assigns them to an attribute.""" + + # TODO(blk-u): Shouldn't need to clear the registry here, but some + # tests call load_backends multiple times. These should be fixed to + # only call load_backends once. + dependency.reset() + for manager in [assignment, catalog, credential, ec2, identity, policy, - token, trust]: + token, token_provider, trust]: manager_name = '%s_api' % manager.__name__.split('.')[-1] setattr(self, manager_name, manager.Manager()) |