summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-10-10 02:30:50 +0000
committerChris McDonough <chrism@agendaless.com>2009-10-10 02:30:50 +0000
commitce8f9b5eadf324b4cc3154004bcf9f1f03e7d6c8 (patch)
tree6dd39091d8e27561541a9ed8ea4f1d0d54b4298f /repoze/bfg/tests
parent048496dbbbbd6679afca52387ddbea2aefd596dd (diff)
downloadpyramid-ce8f9b5eadf324b4cc3154004bcf9f1f03e7d6c8.tar.gz
pyramid-ce8f9b5eadf324b4cc3154004bcf9f1f03e7d6c8.tar.bz2
pyramid-ce8f9b5eadf324b4cc3154004bcf9f1f03e7d6c8.zip
- The ``notfound`` and ``forbidden`` ZCML directives now accept the
following addtional attributes: ``attr``, ``renderer``, and ``wrapper``. These have the same meaning as they do in the context of a ZCML ``view`` directive.
Diffstat (limited to 'repoze/bfg/tests')
-rw-r--r--repoze/bfg/tests/test_zcml.py73
1 files changed, 73 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py
index 35584f301..7cbadd1e2 100644
--- a/repoze/bfg/tests/test_zcml.py
+++ b/repoze/bfg/tests/test_zcml.py
@@ -947,6 +947,12 @@ class TestViewDirective(unittest.TestCase):
self.assertEqual(wrapper, view)
class TestNotFoundDirective(unittest.TestCase):
+ def setUp(self):
+ cleanUp()
+
+ def tearDown(self):
+ cleanUp()
+
def _callFUT(self, context, view):
from repoze.bfg.zcml import notfound
return notfound(context, view)
@@ -972,6 +978,12 @@ class TestNotFoundDirective(unittest.TestCase):
self.assertEqual(derived_view.__name__, view.__name__)
class TestForbiddenDirective(unittest.TestCase):
+ def setUp(self):
+ cleanUp()
+
+ def tearDown(self):
+ cleanUp()
+
def _callFUT(self, context, view):
from repoze.bfg.zcml import forbidden
return forbidden(context, view)
@@ -996,6 +1008,67 @@ class TestForbiddenDirective(unittest.TestCase):
self.assertEqual(derived_view(None, None), 'OK')
self.assertEqual(derived_view.__name__, view.__name__)
+class TestViewUtility(unittest.TestCase):
+ def setUp(self):
+ cleanUp()
+
+ def tearDown(self):
+ cleanUp()
+
+ def _callFUT(self, context, view, attr, renderer, wrapper, iface):
+ from repoze.bfg.zcml import view_utility
+ return view_utility(context, view, attr, renderer, wrapper, iface)
+
+ def test_no_view_no_renderer(self):
+ from zope.configuration.exceptions import ConfigurationError
+ context = DummyContext()
+ self.assertRaises(ConfigurationError, self._callFUT, context,
+ None, None, None, None, None)
+
+ def test_no_view_with_renderer(self):
+ from zope.component import getSiteManager
+ from zope.interface import Interface
+ from repoze.bfg.interfaces import IRendererFactory
+ sm = getSiteManager()
+ def renderer(path):
+ return lambda *arg: 'OK'
+ sm.registerUtility(renderer, IRendererFactory, name='dummy')
+ class IDummy(Interface):
+ pass
+ context = DummyContext()
+ self._callFUT(context, None, None, 'dummy', None, IDummy)
+ actions = context.actions
+ self.assertEqual(len(actions), 1)
+ regadapt = actions[0]
+ self.assertEqual(regadapt['discriminator'], IDummy)
+ register = regadapt['callable']
+ register()
+ derived_view = sm.getUtility(IDummy)
+ request = DummyRequest()
+ self.assertEqual(derived_view(None, request).body, 'OK')
+
+ def test_template_renderer(self):
+ from zope.component import getSiteManager
+ from zope.interface import Interface
+ from repoze.bfg.interfaces import IRendererFactory
+ sm = getSiteManager()
+ def renderer(path):
+ return lambda *arg: 'OK'
+ sm.registerUtility(renderer, IRendererFactory, name='.pt')
+ class IDummy(Interface):
+ pass
+ context = DummyContext()
+ self._callFUT(context, None, None, 'fixtures/minimal.pt', None, IDummy)
+ actions = context.actions
+ self.assertEqual(len(actions), 1)
+ regadapt = actions[0]
+ self.assertEqual(regadapt['discriminator'], IDummy)
+ register = regadapt['callable']
+ register()
+ derived_view = sm.getUtility(IDummy)
+ request = DummyRequest()
+ self.assertEqual(derived_view(None, request).body, 'OK')
+
class TestRepozeWho1AuthenticationPolicyDirective(unittest.TestCase):
def setUp(self):
cleanUp()