summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_zcml.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-06-29 02:49:30 +0000
committerChris McDonough <chrism@agendaless.com>2009-06-29 02:49:30 +0000
commit2869fc2f7f8fa9a4230d66859f232fe2e764103f (patch)
treef947f4ac308595f115966b47eaea2594697c00c3 /repoze/bfg/tests/test_zcml.py
parente1622d3f023e1fe5c6a580668ec3f5ecab9c0a37 (diff)
downloadpyramid-2869fc2f7f8fa9a4230d66859f232fe2e764103f.tar.gz
pyramid-2869fc2f7f8fa9a4230d66859f232fe2e764103f.tar.bz2
pyramid-2869fc2f7f8fa9a4230d66859f232fe2e764103f.zip
Merge pkg_resource_overrides branch.
Diffstat (limited to 'repoze/bfg/tests/test_zcml.py')
-rw-r--r--repoze/bfg/tests/test_zcml.py107
1 files changed, 103 insertions, 4 deletions
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py
index 1a0ee3c3f..875628f5f 100644
--- a/repoze/bfg/tests/test_zcml.py
+++ b/repoze/bfg/tests/test_zcml.py
@@ -804,8 +804,6 @@ class TestRouteDirective(unittest.TestCase):
self.assertEqual(route_args, ('name', 'path', None,))
def test_without_view(self):
- from zope.component import getUtility
- from repoze.bfg.interfaces import IRequestFactories
from repoze.bfg.zcml import connect_route
context = DummyContext()
@@ -827,8 +825,6 @@ class TestRouteDirective(unittest.TestCase):
self.assertEqual(route_args, ('name','path', None))
def test_with_request_type(self):
- from zope.component import getUtility
- from repoze.bfg.interfaces import IRequestFactories
from repoze.bfg.zcml import connect_route
context = DummyContext()
@@ -849,6 +845,94 @@ class TestRouteDirective(unittest.TestCase):
self.assertEqual(route_discriminator[3], 'GET')
self.assertEqual(route_args, ('name','path', None))
+class TestResourceDirective(unittest.TestCase):
+ def setUp(self):
+ cleanUp()
+
+ def tearDown(self):
+ cleanUp()
+
+ def _callFUT(self, *arg, **kw):
+ from repoze.bfg.zcml import resource
+ return resource(*arg, **kw)
+
+ def test_samename(self):
+ from zope.configuration.exceptions import ConfigurationError
+ context = DummyContext()
+ self.assertRaises(ConfigurationError, self._callFUT, context, 'a', 'a')
+
+ def test_override_directory_with_file(self):
+ from zope.configuration.exceptions import ConfigurationError
+ context = DummyContext()
+ self.assertRaises(ConfigurationError, self._callFUT, context, 'a/', 'a')
+
+ def test_override_file_with_directory(self):
+ from zope.configuration.exceptions import ConfigurationError
+ context = DummyContext()
+ self.assertRaises(ConfigurationError, self._callFUT, context, 'a', 'a/')
+
+ def test_no_colons(self):
+ from repoze.bfg.zcml import _override
+ context = DummyContext()
+ self._callFUT(context, 'a', 'b')
+ actions = context.actions
+ self.assertEqual(len(actions), 1)
+ action = actions[0]
+ self.assertEqual(action['callable'], _override)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'],
+ ('IDummy', '', 'IDummy', ''))
+
+ def test_with_colons(self):
+ from repoze.bfg.zcml import _override
+ context = DummyContext()
+ self._callFUT(context, 'a:foo.pt', 'b:foo.pt')
+ actions = context.actions
+ self.assertEqual(len(actions), 1)
+ action = actions[0]
+ self.assertEqual(action['callable'], _override)
+ self.assertEqual(action['discriminator'], None)
+ self.assertEqual(action['args'],
+ ('IDummy', 'foo.pt', 'IDummy', 'foo.pt'))
+
+class Test_OverrideFunction(unittest.TestCase):
+ def setUp(self):
+ cleanUp()
+
+ def tearDown(self):
+ cleanUp()
+
+ def _callFUT(self, *arg, **kw):
+ from repoze.bfg.zcml import _override
+ return _override(*arg, **kw)
+
+ def _registerOverrides(self, overrides, package_name):
+ from repoze.bfg.interfaces import IPackageOverrides
+ from zope.component import getSiteManager
+ sm = getSiteManager()
+ sm.registerUtility(overrides, IPackageOverrides, name=package_name)
+
+ def test_overrides_not_yet_registered(self):
+ from repoze.bfg.resource import OverrideProvider
+ from zope.component import queryUtility
+ from repoze.bfg.interfaces import IPackageOverrides
+ resources = DummyPackageResources()
+ self._callFUT('package', 'path', 'opackage', 'oprefix',
+ PackageOverrides=DummyOverrides, pkg_resources=resources)
+ overrides = queryUtility(IPackageOverrides, name='package')
+ self.assertEqual(overrides.package, 'package')
+ self.assertEqual(overrides.inserted, [('path', 'opackage', 'oprefix')])
+ self.assertEqual(len(resources.registered), 1)
+ resource = resources.registered[0]
+ self.assertEqual(resource[0], type(None))
+ self.assertEqual(resource[1], OverrideProvider)
+
+ def test_overrides_already_registered(self):
+ overrides = DummyOverrides('package')
+ self._registerOverrides(overrides, 'package')
+ self._callFUT('package', 'path', 'opackage', 'oprefix')
+ self.assertEqual(overrides.inserted, [('path', 'opackage', 'oprefix')])
+
class TestZCMLConfigure(unittest.TestCase):
i = 0
def _callFUT(self, path, package):
@@ -1244,3 +1328,18 @@ class DummyRequest:
def get_response(self, app):
return app
+class DummyOverrides:
+ def __init__(self, package):
+ self.package = package
+ self.inserted = []
+
+ def insert(self, path, package, prefix):
+ self.inserted.append((path, package, prefix))
+
+class DummyPackageResources:
+ def __init__(self):
+ self.registered = []
+
+ def register_loader_type(self, typ, provider):
+ self.registered.append((typ, provider))
+