diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-12-05 15:46:54 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-12-05 15:46:54 +0000 |
| commit | ea2b46c21bcefeb85d41fc707260c885516ce483 (patch) | |
| tree | 21d670308f303c62d6586762fcb439e9c5674a26 | |
| parent | d47209b3efba980f7971bb0b7b3a130dd1bb933f (diff) | |
| download | pyramid-ea2b46c21bcefeb85d41fc707260c885516ce483.tar.gz pyramid-ea2b46c21bcefeb85d41fc707260c885516ce483.tar.bz2 pyramid-ea2b46c21bcefeb85d41fc707260c885516ce483.zip | |
Add tests for /adapts cases.
| -rw-r--r-- | repoze/bfg/tests/test_zcml.py | 69 |
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): |
