summaryrefslogtreecommitdiff
path: root/repoze/bfg/tests/test_view.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-10-18 02:27:43 +0000
committerChris McDonough <chrism@agendaless.com>2009-10-18 02:27:43 +0000
commit2cce431f02a37c119eacfc3dfa94af9fe3305de1 (patch)
treef154dbf4937afb3f5d08ed497f6c4cac6f843144 /repoze/bfg/tests/test_view.py
parentf276669b505cb0565dcf854f2e0e751151ccf836 (diff)
downloadpyramid-2cce431f02a37c119eacfc3dfa94af9fe3305de1.tar.gz
pyramid-2cce431f02a37c119eacfc3dfa94af9fe3305de1.tar.bz2
pyramid-2cce431f02a37c119eacfc3dfa94af9fe3305de1.zip
- More than one ``@bfg_view`` decorator may now be stacked on top of
any number of others. Each invocation of the decorator registers a single view. For instance, the following combination of decorators and a function will register two views:: from repoze.bfg.view import bfg_view @bfg_view(name='edit') @bfg_view(name='change') def edit(context, request): pass This makes it possible to associate more than one view configuration for a single callable without requiring ZCML.
Diffstat (limited to 'repoze/bfg/tests/test_view.py')
-rw-r--r--repoze/bfg/tests/test_view.py21
1 files changed, 18 insertions, 3 deletions
diff --git a/repoze/bfg/tests/test_view.py b/repoze/bfg/tests/test_view.py
index eee5a61bd..7b9597194 100644
--- a/repoze/bfg/tests/test_view.py
+++ b/repoze/bfg/tests/test_view.py
@@ -376,7 +376,7 @@ class TestBFGViewDecorator(unittest.TestCase):
""" docstring """
wrapped = decorator(foo)
self.failUnless(wrapped is foo)
- settings = wrapped.__bfg_view_settings__
+ settings = wrapped.__bfg_view_settings__[0]
self.assertEqual(settings['permission'], None)
self.assertEqual(settings['for_'], None)
self.assertEqual(settings['request_type'], None)
@@ -387,7 +387,7 @@ class TestBFGViewDecorator(unittest.TestCase):
""" docstring """
wrapped = decorator(foo)
self.failUnless(wrapped is foo)
- settings = wrapped.__bfg_view_settings__
+ settings = wrapped.__bfg_view_settings__[0]
self.assertEqual(settings['permission'], None)
self.assertEqual(settings['for_'], None)
self.assertEqual(settings['request_type'], None)
@@ -398,11 +398,26 @@ class TestBFGViewDecorator(unittest.TestCase):
""" docstring """
wrapped = decorator(foo)
self.failUnless(wrapped is foo)
- settings = wrapped.__bfg_view_settings__
+ settings = wrapped.__bfg_view_settings__[0]
self.assertEqual(settings['permission'], None)
self.assertEqual(settings['for_'], None)
self.assertEqual(settings['request_type'], None)
+ def test_stacking(self):
+ decorator1 = self._makeOne(name='1')
+ decorator2 = self._makeOne(name='2')
+ def foo():
+ """ docstring """
+ wrapped1 = decorator1(foo)
+ wrapped2 = decorator2(wrapped1)
+ self.failUnless(wrapped1 is foo)
+ self.failUnless(wrapped2 is foo)
+ self.assertEqual(len(wrapped2.__bfg_view_settings__), 2)
+ settings1 = wrapped2.__bfg_view_settings__[0]
+ self.assertEqual(settings1['name'], '1')
+ settings2 = wrapped2.__bfg_view_settings__[1]
+ self.assertEqual(settings2['name'], '2')
+
class TestDefaultForbiddenView(unittest.TestCase):
def _callFUT(self, context, request):
from repoze.bfg.view import default_forbidden_view