summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_zcml.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/tests/test_zcml.py')
-rw-r--r--repoze/bfg/tests/test_zcml.py41
1 files changed, 40 insertions, 1 deletions
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py
index e44fe1307..0b24071e2 100644
--- a/repoze/bfg/tests/test_zcml.py
+++ b/repoze/bfg/tests/test_zcml.py
@@ -109,7 +109,7 @@ class TestViewDirective(unittest.TestCase):
self.assertEqual(regadapt['args'][4], '')
self.assertEqual(regadapt['args'][5], None)
- def test_request_type(self):
+ def test_request_type_asinterface(self):
context = DummyContext()
class IFoo:
pass
@@ -148,6 +148,42 @@ class TestViewDirective(unittest.TestCase):
self.assertEqual(regadapt['args'][4], '')
self.assertEqual(regadapt['args'][5], None)
+ def test_request_type_ashttpmethod(self):
+ context = DummyContext()
+ class IFoo:
+ pass
+ view = lambda *arg: None
+ self._callFUT(context, 'repoze.view', IFoo, view=view,
+ request_type='GET')
+ actions = context.actions
+ from repoze.bfg.interfaces import IView
+ from repoze.bfg.interfaces import IGETRequest
+
+ self.assertEqual(len(actions), 2)
+
+ permission = actions[0]
+ self.assertEqual(permission['args'][2], (IFoo, IGETRequest))
+ regadapt = actions[1]
+ regadapt_discriminator = ('view', IFoo, '', IDummy, IView)
+ self.assertEqual(regadapt['args'][2], (IFoo, IGETRequest))
+
+ def test_request_type_asinterfacestring(self):
+ context = DummyContext()
+ class IFoo:
+ pass
+ view = lambda *arg: None
+ self._callFUT(context, 'repoze.view', IFoo, view=view,
+ request_type='whatever')
+ actions = context.actions
+ from repoze.bfg.interfaces import IView
+ self.assertEqual(len(actions), 2)
+
+ permission = actions[0]
+ self.assertEqual(permission['args'][2], (IFoo, IDummy))
+ regadapt = actions[1]
+ regadapt_discriminator = ('view', IFoo, '', IDummy, IView)
+ self.assertEqual(regadapt['args'][2], (IFoo, IDummy))
+
def test_adapted_class(self):
from zope.interface import Interface
import zope.component
@@ -633,6 +669,9 @@ class DummyContext:
'args':args}
)
+ def resolve(self, dottedname):
+ return IDummy
+
class Dummy:
pass