diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-10-18 02:27:43 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-10-18 02:27:43 +0000 |
| commit | 2cce431f02a37c119eacfc3dfa94af9fe3305de1 (patch) | |
| tree | f154dbf4937afb3f5d08ed497f6c4cac6f843144 /repoze/bfg/tests/test_view.py | |
| parent | f276669b505cb0565dcf854f2e0e751151ccf836 (diff) | |
| download | pyramid-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.py | 21 |
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 |
