summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-12-05 13:22:54 +0000
committerChris McDonough <chrism@agendaless.com>2008-12-05 13:22:54 +0000
commit8dad2136bb02f460c0cb734c2e17d3a27c737a94 (patch)
tree992d1552c5a70dfb397b4c1426ce54803977b1e2
parent2eca00a3dbbcdb2bd767840d0cebde5d9e172340 (diff)
downloadpyramid-8dad2136bb02f460c0cb734c2e17d3a27c737a94.tar.gz
pyramid-8dad2136bb02f460c0cb734c2e17d3a27c737a94.tar.bz2
pyramid-8dad2136bb02f460c0cb734c2e17d3a27c737a94.zip
Check in failing test.
-rw-r--r--repoze/bfg/tests/test_zcml.py57
-rw-r--r--repoze/bfg/zcml.py3
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: