summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-12-05 15:46:54 +0000
committerChris McDonough <chrism@agendaless.com>2008-12-05 15:46:54 +0000
commitea2b46c21bcefeb85d41fc707260c885516ce483 (patch)
tree21d670308f303c62d6586762fcb439e9c5674a26
parentd47209b3efba980f7971bb0b7b3a130dd1bb933f (diff)
downloadpyramid-ea2b46c21bcefeb85d41fc707260c885516ce483.tar.gz
pyramid-ea2b46c21bcefeb85d41fc707260c885516ce483.tar.bz2
pyramid-ea2b46c21bcefeb85d41fc707260c885516ce483.zip
Add tests for /adapts cases.
-rw-r--r--repoze/bfg/tests/test_zcml.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py
index 52a647dde..ec479f9a8 100644
--- a/repoze/bfg/tests/test_zcml.py
+++ b/repoze/bfg/tests/test_zcml.py
@@ -176,6 +176,75 @@ class TestViewDirective(unittest.TestCase, PlacelessSetup):
self.assertEqual(regadapt['args'][3], IView)
self.assertEqual(regadapt['args'][4], '')
self.assertEqual(regadapt['args'][5], None)
+
+ def test_adapted_function(self):
+ from zope.interface import Interface
+ import zope.component
+
+ class IFoo(Interface):
+ pass
+ class IBar(Interface):
+ pass
+
+ @zope.component.adapter(IFoo, IBar)
+ def aview(self, context, request):
+ pass
+
+ context = DummyContext()
+ self._callFUT(context, view=aview)
+
+ actions = context.actions
+ from repoze.bfg.interfaces import IView
+ from repoze.bfg.zcml import handler
+
+ self.assertEqual(len(actions), 1)
+
+ regadapt = actions[0]
+ regadapt_discriminator = ('view', IFoo, '', IBar, IView, True)
+
+ self.assertEqual(regadapt['discriminator'], regadapt_discriminator)
+ self.assertEqual(regadapt['callable'], handler)
+ self.assertEqual(regadapt['args'][0], 'registerAdapter')
+ self.assertEqual(regadapt['args'][1], aview)
+ self.assertEqual(regadapt['args'][2], (IFoo, IBar))
+ self.assertEqual(regadapt['args'][3], IView)
+ self.assertEqual(regadapt['args'][4], '')
+ self.assertEqual(regadapt['args'][5], None)
+
+ def test_adapted_nonsense(self):
+ from repoze.bfg.interfaces import IRequest
+ from zope.interface import Interface
+ import zope.component
+
+ class IFoo(Interface):
+ pass
+ class IBar(Interface):
+ pass
+
+ @zope.component.adapter(IFoo) # too few arguments
+ def aview(self, context, request):
+ pass
+
+ context = DummyContext()
+ self._callFUT(context, view=aview)
+
+ actions = context.actions
+ from repoze.bfg.interfaces import IView
+ from repoze.bfg.zcml import handler
+
+ self.assertEqual(len(actions), 1)
+
+ regadapt = actions[0]
+ regadapt_discriminator = ('view', None, '', IRequest, IView, True)
+
+ self.assertEqual(regadapt['discriminator'], regadapt_discriminator)
+ self.assertEqual(regadapt['callable'], handler)
+ self.assertEqual(regadapt['args'][0], 'registerAdapter')
+ self.assertEqual(regadapt['args'][1], aview)
+ self.assertEqual(regadapt['args'][2], (None, IRequest))
+ self.assertEqual(regadapt['args'][3], IView)
+ self.assertEqual(regadapt['args'][4], '')
+ self.assertEqual(regadapt['args'][5], None)
class TestFixtureApp(unittest.TestCase, PlacelessSetup):