summaryrefslogtreecommitdiff
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
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.
-rw-r--r--repoze/bfg/paster_templates/starter/+package+/tests.py_tmpl9
-rw-r--r--repoze/bfg/paster_templates/zodb/+package+/tests.py_tmpl9
-rw-r--r--repoze/bfg/registry.py7
-rw-r--r--repoze/bfg/testing.py23
-rw-r--r--repoze/bfg/tests/test_chameleon_text.py2
-rw-r--r--repoze/bfg/tests/test_chameleon_zpt.py2
-rw-r--r--repoze/bfg/tests/test_integration.py2
-rw-r--r--repoze/bfg/tests/test_push.py2
-rw-r--r--repoze/bfg/tests/test_registry.py2
-rw-r--r--repoze/bfg/tests/test_router.py2
-rw-r--r--repoze/bfg/tests/test_security.py2
-rw-r--r--repoze/bfg/tests/test_template.py2
-rw-r--r--repoze/bfg/tests/test_templating.py2
-rw-r--r--repoze/bfg/tests/test_testing.py37
-rw-r--r--repoze/bfg/tests/test_traversal.py2
-rw-r--r--repoze/bfg/tests/test_url.py2
-rw-r--r--repoze/bfg/tests/test_view.py2
-rw-r--r--repoze/bfg/tests/test_zcml.py2
-rw-r--r--setup.py3
19 files changed, 81 insertions, 33 deletions
diff --git a/repoze/bfg/paster_templates/starter/+package+/tests.py_tmpl b/repoze/bfg/paster_templates/starter/+package+/tests.py_tmpl
index 47524f344..c52ab2762 100644
--- a/repoze/bfg/paster_templates/starter/+package+/tests.py_tmpl
+++ b/repoze/bfg/paster_templates/starter/+package+/tests.py_tmpl
@@ -1,6 +1,5 @@
import unittest
-from zope.testing.cleanup import cleanUp
from repoze.bfg import testing
class ViewTests(unittest.TestCase):
@@ -14,13 +13,13 @@ class ViewTests(unittest.TestCase):
""" cleanUp() is required to clear out the application registry
between tests (done in setUp for good measure too)
"""
- cleanUp()
+ testing.cleanUp()
def tearDown(self):
""" cleanUp() is required to clear out the application registry
between tests
"""
- cleanUp()
+ testing.cleanUp()
def test_my_view(self):
from {{package}}.views import my_view
@@ -48,7 +47,7 @@ class ViewIntegrationTests(unittest.TestCase):
registrations your application declares in its configure.zcml
(including dependent registrations for repoze.bfg itself).
"""
- cleanUp()
+ testing.cleanUp()
import {{package}}
import zope.configuration.xmlconfig
zope.configuration.xmlconfig.file('configure.zcml',
@@ -56,7 +55,7 @@ class ViewIntegrationTests(unittest.TestCase):
def tearDown(self):
""" Clear out the application registry """
- cleanUp()
+ testing.cleanUp()
def test_my_view(self):
from {{package}}.views import my_view
diff --git a/repoze/bfg/paster_templates/zodb/+package+/tests.py_tmpl b/repoze/bfg/paster_templates/zodb/+package+/tests.py_tmpl
index 47524f344..c52ab2762 100644
--- a/repoze/bfg/paster_templates/zodb/+package+/tests.py_tmpl
+++ b/repoze/bfg/paster_templates/zodb/+package+/tests.py_tmpl
@@ -1,6 +1,5 @@
import unittest
-from zope.testing.cleanup import cleanUp
from repoze.bfg import testing
class ViewTests(unittest.TestCase):
@@ -14,13 +13,13 @@ class ViewTests(unittest.TestCase):
""" cleanUp() is required to clear out the application registry
between tests (done in setUp for good measure too)
"""
- cleanUp()
+ testing.cleanUp()
def tearDown(self):
""" cleanUp() is required to clear out the application registry
between tests
"""
- cleanUp()
+ testing.cleanUp()
def test_my_view(self):
from {{package}}.views import my_view
@@ -48,7 +47,7 @@ class ViewIntegrationTests(unittest.TestCase):
registrations your application declares in its configure.zcml
(including dependent registrations for repoze.bfg itself).
"""
- cleanUp()
+ testing.cleanUp()
import {{package}}
import zope.configuration.xmlconfig
zope.configuration.xmlconfig.file('configure.zcml',
@@ -56,7 +55,7 @@ class ViewIntegrationTests(unittest.TestCase):
def tearDown(self):
""" Clear out the application registry """
- cleanUp()
+ testing.cleanUp()
def test_my_view(self):
from {{package}}.views import my_view
diff --git a/repoze/bfg/registry.py b/repoze/bfg/registry.py
index acf947fdb..5d856ca19 100644
--- a/repoze/bfg/registry.py
+++ b/repoze/bfg/registry.py
@@ -114,10 +114,3 @@ def getSiteManager(context=None):
except TypeError, error:
raise ComponentLookupError(*error.args)
-try:
- from zope.testing.cleanup import addCleanUp
-except ImportError: #pragma NO COVERAGE
- """ Do nothing """ #pragma NO COVERAGE doesnt work w/ 'pass' :-(
-else:
- addCleanUp(original_getSiteManager.reset)
- addCleanUp(registry_manager.clear)
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)
diff --git a/repoze/bfg/tests/test_chameleon_text.py b/repoze/bfg/tests/test_chameleon_text.py
index c2455918f..74d348d14 100644
--- a/repoze/bfg/tests/test_chameleon_text.py
+++ b/repoze/bfg/tests/test_chameleon_text.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class Base:
def setUp(self):
diff --git a/repoze/bfg/tests/test_chameleon_zpt.py b/repoze/bfg/tests/test_chameleon_zpt.py
index e0ed74e5f..4a1cac166 100644
--- a/repoze/bfg/tests/test_chameleon_zpt.py
+++ b/repoze/bfg/tests/test_chameleon_zpt.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class Base(object):
def setUp(self):
diff --git a/repoze/bfg/tests/test_integration.py b/repoze/bfg/tests/test_integration.py
index 982197850..fb07d76a5 100644
--- a/repoze/bfg/tests/test_integration.py
+++ b/repoze/bfg/tests/test_integration.py
@@ -8,7 +8,7 @@ from repoze.bfg.view import static
from zope.interface import Interface
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class INothing(Interface):
pass
diff --git a/repoze/bfg/tests/test_push.py b/repoze/bfg/tests/test_push.py
index 00f4a4ecb..d5d2801aa 100644
--- a/repoze/bfg/tests/test_push.py
+++ b/repoze/bfg/tests/test_push.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class Test_pushpage(unittest.TestCase):
def setUp(self):
diff --git a/repoze/bfg/tests/test_registry.py b/repoze/bfg/tests/test_registry.py
index 2f7123cff..77031806f 100644
--- a/repoze/bfg/tests/test_registry.py
+++ b/repoze/bfg/tests/test_registry.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class TestRegistry(unittest.TestCase):
def _getTargetClass(self):
diff --git a/repoze/bfg/tests/test_router.py b/repoze/bfg/tests/test_router.py
index dd249a8fe..95defb7e7 100644
--- a/repoze/bfg/tests/test_router.py
+++ b/repoze/bfg/tests/test_router.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class RouterTests(unittest.TestCase):
def setUp(self):
diff --git a/repoze/bfg/tests/test_security.py b/repoze/bfg/tests/test_security.py
index b8a49f39f..a9aaaa30a 100644
--- a/repoze/bfg/tests/test_security.py
+++ b/repoze/bfg/tests/test_security.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class TestACLSecurityPolicy(unittest.TestCase):
def setUp(self):
diff --git a/repoze/bfg/tests/test_template.py b/repoze/bfg/tests/test_template.py
index 78bd139c5..06aa61328 100644
--- a/repoze/bfg/tests/test_template.py
+++ b/repoze/bfg/tests/test_template.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class Base(object):
def setUp(self):
diff --git a/repoze/bfg/tests/test_templating.py b/repoze/bfg/tests/test_templating.py
index ef39bcf05..94d7a21f9 100644
--- a/repoze/bfg/tests/test_templating.py
+++ b/repoze/bfg/tests/test_templating.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
from repoze.bfg import testing
class TestRendererFromCache(unittest.TestCase):
diff --git a/repoze/bfg/tests/test_testing.py b/repoze/bfg/tests/test_testing.py
index 1154fc27b..d61092065 100644
--- a/repoze/bfg/tests/test_testing.py
+++ b/repoze/bfg/tests/test_testing.py
@@ -1,4 +1,4 @@
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
import unittest
class TestTestingFunctions(unittest.TestCase):
@@ -452,5 +452,40 @@ class TestDummyTemplateRenderer(unittest.TestCase):
renderer = self._makeOne('abc')
result = renderer(a=1, b=2)
self.assertEqual(result, 'abc')
+
+class CleanUpTests(object):
+ def setUp(self):
+ from repoze.bfg.testing import _cleanups
+ self._old_cleanups = _cleanups[:]
+
+ def tearDown(self):
+ from repoze.bfg import testing
+ testing._cleanups = self._old_cleanups
+class TestAddCleanUp(CleanUpTests, unittest.TestCase):
+ def _getFUT(self, ):
+ from repoze.bfg.testing import addCleanUp
+ return addCleanUp
+
+ def test_it(self):
+ addCleanUp = self._getFUT()
+ addCleanUp(1, ('a', 'b'), {'foo':'bar'})
+ from repoze.bfg.testing import _cleanups
+ self.assertEqual(_cleanups[-1], (1, ('a', 'b'), {'foo':'bar'}))
+
+class TestCleanUp(CleanUpTests, unittest.TestCase):
+ def _getFUT(self, ):
+ from repoze.bfg.testing import cleanUp
+ return cleanUp
+
+ def test_it(self):
+ from repoze.bfg.testing import _cleanups
+ cleanUp = self._getFUT()
+ L = []
+ def f(*arg, **kw):
+ L.append((arg, kw))
+ _cleanups.append((f, ('a', '1'), {'kw':'1'}))
+ cleanUp()
+ self.assertEqual(L, [(('a', '1'), {'kw':'1'})])
+
diff --git a/repoze/bfg/tests/test_traversal.py b/repoze/bfg/tests/test_traversal.py
index 867dae318..e0ab8d938 100644
--- a/repoze/bfg/tests/test_traversal.py
+++ b/repoze/bfg/tests/test_traversal.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class TraversalPathTests(unittest.TestCase):
def _callFUT(self, path):
diff --git a/repoze/bfg/tests/test_url.py b/repoze/bfg/tests/test_url.py
index fc89e6c0d..64cf52383 100644
--- a/repoze/bfg/tests/test_url.py
+++ b/repoze/bfg/tests/test_url.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class ModelURLTests(unittest.TestCase):
def setUp(self):
diff --git a/repoze/bfg/tests/test_view.py b/repoze/bfg/tests/test_view.py
index e32a04deb..cb2336f2a 100644
--- a/repoze/bfg/tests/test_view.py
+++ b/repoze/bfg/tests/test_view.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class BaseTest(object):
def setUp(self):
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py
index 67cb40cb1..0d7f1b631 100644
--- a/repoze/bfg/tests/test_zcml.py
+++ b/repoze/bfg/tests/test_zcml.py
@@ -1,6 +1,6 @@
import unittest
-from zope.testing.cleanup import cleanUp
+from repoze.bfg.testing import cleanUp
class TestViewDirective(unittest.TestCase):
def setUp(self):
diff --git a/setup.py b/setup.py
index 32f1052d5..b86b21578 100644
--- a/setup.py
+++ b/setup.py
@@ -64,8 +64,7 @@ setup(name='repoze.bfg',
namespace_packages = ['repoze', 'repoze.bfg'],
zip_safe=False,
install_requires = install_requires,
- tests_require= install_requires + ['zope.testing',
- 'Sphinx', 'docutils', 'coverage'],
+ tests_require= install_requires + ['Sphinx', 'docutils', 'coverage'],
test_suite="repoze.bfg.tests",
entry_points = """\
[paste.paster_create_template]