summaryrefslogtreecommitdiff
path: root/oslo_context/fixture.py
diff options
context:
space:
mode:
authorSean Dague <sean@dague.net>2015-03-05 12:02:00 -0500
committerSean Dague <sean@dague.net>2015-03-05 12:12:27 -0500
commit1c4757a9fb41e47867bd9b8d390057ad7636b76f (patch)
tree69f62460bbf3e181944f5b42d8066ddae4a75ab7 /oslo_context/fixture.py
parent205479f254e2bc90c0c142f1f75df500ae94f916 (diff)
downloadoslo-context-1c4757a9fb41e47867bd9b8d390057ad7636b76f.tar.gz
ensure we reset contexts when fixture is used0.2.0
Previously using the ClearRequestContext fixture only reset contexts on fixture teardown. If *all* tests in a test suite use this fixture, this is fine. However if any tests do not, it means you might start with a carry over context from previous tests. Using this fixture means you really wanted a clean slate, so fix it so that you get a clean state when you get started as well as when you finish. Change-Id: I5e6f7bc2866fe66f269c7d5e1f36c711151489c2 Closes-Bug: #1428728
Diffstat (limited to 'oslo_context/fixture.py')
-rw-r--r--oslo_context/fixture.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/oslo_context/fixture.py b/oslo_context/fixture.py
index 51822e8..a7bb0ff 100644
--- a/oslo_context/fixture.py
+++ b/oslo_context/fixture.py
@@ -16,10 +16,20 @@ from oslo_context import context
class ClearRequestContext(fixtures.Fixture):
- """Clears any cached RequestContext at the end of a test case."""
+ """Clears any cached RequestContext
+
+ This resets RequestContext at the beginning and end of tests that
+ use this fixture to ensure that we have a clean slate for running
+ tests, and that we leave a clean slate for other tests that might
+ run later in the same process.
+ """
def setUp(self):
super(ClearRequestContext, self).setUp()
+ # we need to clear both when we start, and when we finish,
+ # because there might be other tests running that don't handle
+ # this correctly.
+ self._remove_cached_context()
self.addCleanup(self._remove_cached_context)
def _remove_cached_context(self):