summaryrefslogtreecommitdiff
path: root/repoze/bfg/testing.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-05-05 01:18:43 +0000
committerChris McDonough <chrism@agendaless.com>2009-05-05 01:18:43 +0000
commitd322ac311ae5ac32351c45da391fd22c28f4dd2d (patch)
tree61a5621b0c0d9ff5397efe93b6da63695528b374 /repoze/bfg/testing.py
parentf2515e840bf0967fc253d4378167a3c5d5a1cf2e (diff)
downloadpyramid-d322ac311ae5ac32351c45da391fd22c28f4dd2d.tar.gz
pyramid-d322ac311ae5ac32351c45da391fd22c28f4dd2d.tar.bz2
pyramid-d322ac311ae5ac32351c45da391fd22c28f4dd2d.zip
Get rid of direct dependency on zope.testing by creating our own addCleanUp and cleanUp functions in repoze.bfg.testing. Our dependencies still rely on zope.testing, however.
Diffstat (limited to 'repoze/bfg/testing.py')
-rw-r--r--repoze/bfg/testing.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/repoze/bfg/testing.py b/repoze/bfg/testing.py
index 924f2602a..42d5e88fd 100644
--- a/repoze/bfg/testing.py
+++ b/repoze/bfg/testing.py
@@ -371,3 +371,26 @@ class DummyRequest:
self.marshalled = params # repoze.monty
self.__dict__.update(kw)
+_cleanups = []
+
+def addCleanUp(func, args=(), kw={}):
+ """Register a cleanup routines
+
+ Pass a function to be called to cleanup global data.
+ Optional argument tuple and keyword arguments may be passed.
+ """
+ _cleanups.append((func, args, kw))
+
+def cleanUp():
+ """Clean up global data."""
+ for func, args, kw in _cleanups:
+ func(*args, **kw)
+
+from zope.component.globalregistry import base
+from zope.configuration.xmlconfig import _clearContext
+from repoze.bfg.registry import original_getSiteManager
+from repoze.bfg.registry import registry_manager
+addCleanUp(original_getSiteManager.reset)
+addCleanUp(registry_manager.clear)
+addCleanUp(lambda: base.__init__('base'))
+addCleanUp(_clearContext)