diff options
| author | Chris McDonough <chrism@agendaless.com> | 2008-12-05 13:22:54 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2008-12-05 13:22:54 +0000 |
| commit | 8dad2136bb02f460c0cb734c2e17d3a27c737a94 (patch) | |
| tree | 992d1552c5a70dfb397b4c1426ce54803977b1e2 | |
| parent | 2eca00a3dbbcdb2bd767840d0cebde5d9e172340 (diff) | |
| download | pyramid-8dad2136bb02f460c0cb734c2e17d3a27c737a94.tar.gz pyramid-8dad2136bb02f460c0cb734c2e17d3a27c737a94.tar.bz2 pyramid-8dad2136bb02f460c0cb734c2e17d3a27c737a94.zip | |
Check in failing test.
| -rw-r--r-- | repoze/bfg/tests/test_zcml.py | 57 | ||||
| -rw-r--r-- | repoze/bfg/zcml.py | 3 |
2 files changed, 48 insertions, 12 deletions
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py index 6d79606ad..b43083967 100644 --- a/repoze/bfg/tests/test_zcml.py +++ b/repoze/bfg/tests/test_zcml.py @@ -9,24 +9,23 @@ class TestViewDirective(unittest.TestCase, PlacelessSetup): def tearDown(self): PlacelessSetup.tearDown(self) - def _getFUT(self): + def _callFUT(self, *arg, **kw): from repoze.bfg.zcml import view - return view + return view(*arg, **kw) def test_no_view(self): - f = self._getFUT() from zope.configuration.exceptions import ConfigurationError context = DummyContext() - self.assertRaises(ConfigurationError, f, context, 'repoze.view', None) + self.assertRaises(ConfigurationError, self._callFUT, context, + 'repoze.view', None) def test_only_view(self): - f = self._getFUT() context = DummyContext() class IFoo: pass def view(context, request): pass - f(context, 'repoze.view', IFoo, view=view) + self._callFUT(context, 'repoze.view', IFoo, view=view) actions = context.actions from repoze.bfg.interfaces import IRequest from repoze.bfg.interfaces import IView @@ -68,13 +67,13 @@ class TestViewDirective(unittest.TestCase, PlacelessSetup): self.assertEqual(regadapt['args'][5], None) def test_request_type(self): - f = self._getFUT() context = DummyContext() class IFoo: pass def view(context, request): pass - f(context, 'repoze.view', IFoo, view=view, request_type=IDummy) + self._callFUT(context, 'repoze.view', IFoo, view=view, + request_type=IDummy) actions = context.actions from repoze.bfg.interfaces import IView from repoze.bfg.interfaces import IViewPermission @@ -115,14 +114,13 @@ class TestViewDirective(unittest.TestCase, PlacelessSetup): self.assertEqual(regadapt['args'][5], None) def test_uncacheable(self): - f = self._getFUT() context = DummyContext() class IFoo: pass def view(context, request): pass - f(context, 'repoze.view', IFoo, view=view, request_type=IDummy, - cacheable=False) + self._callFUT(context, 'repoze.view', IFoo, view=view, + request_type=IDummy, cacheable=False) actions = context.actions from repoze.bfg.interfaces import IView from repoze.bfg.zcml import handler @@ -141,6 +139,43 @@ class TestViewDirective(unittest.TestCase, PlacelessSetup): self.assertEqual(regadapt['args'][4], '') self.assertEqual(regadapt['args'][5], None) + def test_adapted_class(self): + from zope.interface import Interface + import zope.component + + class IFoo(Interface): + pass + class IBar(Interface): + pass + + class AView: + zope.component.adapts(IFoo, IBar) + def __call__(self, context, request): + pass + + aview = AView() + + 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) + + class TestFixtureApp(unittest.TestCase, PlacelessSetup): def setUp(self): PlacelessSetup.setUp(self) diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py index aba5847d2..79d4c2561 100644 --- a/repoze/bfg/zcml.py +++ b/repoze/bfg/zcml.py @@ -52,7 +52,8 @@ def view(_context, args = ('', for_) ) - # views may be either functions or class instances + # adapts() decorations may be used against either functions or + # class instances if isinstance(view, types.FunctionType): adapted_by = adaptedBy(view) else: |
