From 6c7b9a1534d35aeb07f4a9a59b8e15633f6b6b6b Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Sun, 31 May 2009 20:36:53 +0000 Subject: - The ``request_type`` argument of ZCML ``view`` declarations and ``bfg_view`` decorators can now be one of the strings ``GET``, ``POST``, ``PUT``, ``DELETE``, or ``HEAD`` instead of a reference to the respective interface type imported from ``repoze.bfg.interfaces``. --- repoze/bfg/tests/test_zcml.py | 41 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 40 insertions(+), 1 deletion(-) (limited to 'repoze/bfg/tests') 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 -- cgit v1.2.3