diff options
| author | Chris McDonough <chrism@agendaless.com> | 2009-09-14 07:58:48 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2009-09-14 07:58:48 +0000 |
| commit | 89da13b76ce3370dcf86750758d8a8d5d2960500 (patch) | |
| tree | d90ce8bf5f7be33a7a75e7fd22cecd3b87f53859 | |
| parent | 4eb45e9de657bedeb0b03469781c35758500dfa2 (diff) | |
| download | pyramid-89da13b76ce3370dcf86750758d8a8d5d2960500.tar.gz pyramid-89da13b76ce3370dcf86750758d8a8d5d2960500.tar.bz2 pyramid-89da13b76ce3370dcf86750758d8a8d5d2960500.zip | |
Provide wrapper behavior to bfg_view decorator.
| -rw-r--r-- | repoze/bfg/tests/test_zcml.py | 1 | ||||
| -rw-r--r-- | repoze/bfg/view.py | 7 | ||||
| -rw-r--r-- | repoze/bfg/zcml.py | 4 |
3 files changed, 10 insertions, 2 deletions
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py index 398159801..a92625fed 100644 --- a/repoze/bfg/tests/test_zcml.py +++ b/repoze/bfg/tests/test_zcml.py @@ -2103,6 +2103,7 @@ class TestBFGViewFunctionGrokker(unittest.TestCase): obj.__containment__ = None obj.__attr__ = None obj.__template__ = None + obj.__wrapper_viewname__ = None context = DummyContext() result = grokker.grok('name', obj, context=context) self.assertEqual(result, True) diff --git a/repoze/bfg/view.py b/repoze/bfg/view.py index 794c7fa65..ba96812e7 100644 --- a/repoze/bfg/view.py +++ b/repoze/bfg/view.py @@ -239,6 +239,9 @@ class bfg_view(object): If ``template`` is not supplied, ``None`` is used (meaning that no template is associated with this view). + If ``wrapper`` is not supplied, ``None`` is used (meaning that no + view wrapper is associated with this view). + If ``request_type`` is not supplied, the interface ``repoze.bfg.interfaces.IRequest`` is used, implying the standard request interface type. @@ -332,7 +335,7 @@ class bfg_view(object): """ def __init__(self, name='', request_type=None, for_=None, permission=None, route_name=None, request_method=None, request_param=None, - containment=None, attr=None, template=None): + containment=None, attr=None, template=None, wrapper=None): self.name = name self.request_type = request_type self.for_ = for_ @@ -343,6 +346,7 @@ class bfg_view(object): self.containment = containment self.attr = attr self.template = template + self.wrapper_viewname = wrapper def __call__(self, wrapped): _bfg_view = map_view(wrapped, self.attr, self.template) @@ -355,6 +359,7 @@ class bfg_view(object): _bfg_view.__request_method__ = self.request_method _bfg_view.__request_param__ = self.request_param _bfg_view.__containment__ = self.containment + _bfg_view.__wrapper_viewname__ = self.wrapper_viewname return _bfg_view def default_view(context, request, status): diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py index 657105e34..40226b1d1 100644 --- a/repoze/bfg/zcml.py +++ b/repoze/bfg/zcml.py @@ -725,11 +725,13 @@ class BFGViewFunctionGrokker(martian.InstanceGrokker): request_method = obj.__request_method__ request_param = obj.__request_param__ containment = obj.__containment__ + wrapper = obj.__wrapper_viewname__ context = kw['context'] view(context, permission=permission, for_=for_, view=obj, name=name, request_type=request_type, route_name=route_name, request_method=request_method, - request_param=request_param, containment=containment) + request_param=request_param, containment=containment, + wrapper=wrapper) return True return False |
