summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-09-22 03:33:53 +0000
committerChris McDonough <chrism@agendaless.com>2009-09-22 03:33:53 +0000
commitc89bcbc3f040e2ab7770958abc01db1984bb958d (patch)
tree4e419fada614f6f9e07b1d23e969641efdbabd91
parent79a9be83059422e430c1c3fc627be6ca41d6ccfa (diff)
downloadpyramid-c89bcbc3f040e2ab7770958abc01db1984bb958d.tar.gz
pyramid-c89bcbc3f040e2ab7770958abc01db1984bb958d.tar.bz2
pyramid-c89bcbc3f040e2ab7770958abc01db1984bb958d.zip
__is_bfg_view__ -> __bfg_view_settings__
-rw-r--r--repoze/bfg/tests/test_integration.py2
-rw-r--r--repoze/bfg/tests/test_view.py24
-rw-r--r--repoze/bfg/tests/test_zcml.py20
-rw-r--r--repoze/bfg/view.py17
-rw-r--r--repoze/bfg/zcml.py30
5 files changed, 35 insertions, 58 deletions
diff --git a/repoze/bfg/tests/test_integration.py b/repoze/bfg/tests/test_integration.py
index fb5d22a2b..5e386a069 100644
--- a/repoze/bfg/tests/test_integration.py
+++ b/repoze/bfg/tests/test_integration.py
@@ -27,7 +27,7 @@ class WGSIAppPlusBFGViewTests(unittest.TestCase):
def test_it(self):
import types
- self.assertEqual(wsgiapptest.__is_bfg_view__, True)
+ self.failUnless(wsgiapptest.__bfg_view_settings__)
self.failUnless(type(wsgiapptest) is types.FunctionType)
context = DummyContext()
request = DummyRequest()
diff --git a/repoze/bfg/tests/test_view.py b/repoze/bfg/tests/test_view.py
index 42d14f83a..e741c32f5 100644
--- a/repoze/bfg/tests/test_view.py
+++ b/repoze/bfg/tests/test_view.py
@@ -376,10 +376,10 @@ class TestBFGViewDecorator(unittest.TestCase):
""" docstring """
wrapped = decorator(foo)
self.failUnless(wrapped is foo)
- self.assertEqual(wrapped.__is_bfg_view__, True)
- self.assertEqual(wrapped.__permission__, None)
- self.assertEqual(wrapped.__for__, None)
- self.assertEqual(wrapped.__request_type__, None)
+ settings = wrapped.__bfg_view_settings__
+ self.assertEqual(settings['permission'], None)
+ self.assertEqual(settings['for_'], None)
+ self.assertEqual(settings['request_type'], None)
def test_call_oldstyle_class(self):
decorator = self._makeOne()
@@ -387,10 +387,10 @@ class TestBFGViewDecorator(unittest.TestCase):
""" docstring """
wrapped = decorator(foo)
self.failUnless(wrapped is foo)
- self.assertEqual(wrapped.__is_bfg_view__, True)
- self.assertEqual(wrapped.__permission__, None)
- self.assertEqual(wrapped.__for__, None)
- self.assertEqual(wrapped.__request_type__, None)
+ settings = wrapped.__bfg_view_settings__
+ self.assertEqual(settings['permission'], None)
+ self.assertEqual(settings['for_'], None)
+ self.assertEqual(settings['request_type'], None)
def test_call_newstyle_class(self):
decorator = self._makeOne()
@@ -398,10 +398,10 @@ class TestBFGViewDecorator(unittest.TestCase):
""" docstring """
wrapped = decorator(foo)
self.failUnless(wrapped is foo)
- self.assertEqual(wrapped.__is_bfg_view__, True)
- self.assertEqual(wrapped.__permission__, None)
- self.assertEqual(wrapped.__for__, None)
- self.assertEqual(wrapped.__request_type__, None)
+ settings = wrapped.__bfg_view_settings__
+ self.assertEqual(settings['permission'], None)
+ self.assertEqual(settings['for_'], None)
+ self.assertEqual(settings['request_type'], None)
class TestDefaultForbiddenView(unittest.TestCase):
def _callFUT(self, context, request):
diff --git a/repoze/bfg/tests/test_zcml.py b/repoze/bfg/tests/test_zcml.py
index 5be8b7fb2..d521250b5 100644
--- a/repoze/bfg/tests/test_zcml.py
+++ b/repoze/bfg/tests/test_zcml.py
@@ -1833,20 +1833,12 @@ class TestBFGViewGrokker(unittest.TestCase):
pass
def __call__(self):
return 'OK'
- obj.__is_bfg_view__ = True
- obj.__permission__ = 'foo'
- obj.__for__ = Interface
- obj.__view_name__ = 'foo.html'
- obj.__request_type__ = IRequest
- obj.__route_name__ = None
- obj.__request_method__ = None
- obj.__request_param__ = None
- obj.__containment__ = None
- obj.__attr__ = None
- obj.__template__ = None
- obj.__wrapper_viewname__ = None
- obj.__renderer__ = None
- obj.__attr__ = None
+ settings = dict(permission='foo', for_=Interface, name='foo.html',
+ request_type=IRequest, route_name=None,
+ request_method=None, request_param=None,
+ containment=None, attr=None, renderer=None,
+ wrapper_viewname=None)
+ obj.__bfg_view_settings__ = settings
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 c710829ca..82ddd74fa 100644
--- a/repoze/bfg/view.py
+++ b/repoze/bfg/view.py
@@ -29,7 +29,6 @@ from repoze.bfg.interfaces import ILogger
from repoze.bfg.interfaces import IMultiView
from repoze.bfg.interfaces import IRendererFactory
from repoze.bfg.interfaces import IResponseFactory
-from repoze.bfg.interfaces import ITemplateRenderer
from repoze.bfg.interfaces import IView
from repoze.bfg.path import caller_package
@@ -357,20 +356,8 @@ class bfg_view(object):
self.wrapper_viewname = wrapper
def __call__(self, wrapped):
- _bfg_view = wrapped #map_view(wrapped, self.attr, self.renderer)
- _bfg_view.__is_bfg_view__ = True
- _bfg_view.__permission__ = self.permission
- _bfg_view.__for__ = self.for_
- _bfg_view.__view_name__ = self.name
- _bfg_view.__request_type__ = self.request_type
- _bfg_view.__route_name__ = self.route_name
- _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
- _bfg_view.__attr__ = self.attr
- _bfg_view.__renderer__ = self.renderer
- return _bfg_view
+ wrapped.__bfg_view_settings__ = self.__dict__.copy()
+ return wrapped
def default_view(context, request, status):
try:
diff --git a/repoze/bfg/zcml.py b/repoze/bfg/zcml.py
index 39c2f89cc..72b39fcb3 100644
--- a/repoze/bfg/zcml.py
+++ b/repoze/bfg/zcml.py
@@ -1,6 +1,4 @@
-import inspect
import sys
-import types
from zope.configuration import xmlconfig
import zope.configuration.config
@@ -21,7 +19,6 @@ from zope.schema import Int
from zope.schema import TextLine
import martian
-import martian.core
from repoze.bfg.interfaces import IAuthenticationPolicy
from repoze.bfg.interfaces import IAuthorizationPolicy
@@ -607,25 +604,26 @@ class BFGViewMarker(object):
class BFGMultiGrokker(martian.core.MultiInstanceOrClassGrokkerBase):
def get_bases(self, obj):
- if hasattr(obj, '__is_bfg_view__'):
+ if hasattr(obj, '__bfg_view_settings__'):
return [BFGViewMarker]
return []
class BFGViewGrokker(martian.InstanceGrokker):
martian.component(BFGViewMarker)
def grok(self, name, obj, **kw):
- if hasattr(obj, '__is_bfg_view__'):
- permission = obj.__permission__
- for_ = obj.__for__
- name = obj.__view_name__
- request_type = obj.__request_type__
- route_name = obj.__route_name__
- request_method = obj.__request_method__
- request_param = obj.__request_param__
- containment = obj.__containment__
- wrapper = obj.__wrapper_viewname__
- attr = obj.__attr__
- renderer = obj.__renderer__
+ if hasattr(obj, '__bfg_view_settings__'):
+ settings = obj.__bfg_view_settings__
+ permission = settings['permission']
+ for_ = settings['for_']
+ name = settings['name']
+ request_type = settings['request_type']
+ route_name = settings['route_name']
+ request_method = settings['request_method']
+ request_param = settings['request_param']
+ containment = settings['containment']
+ wrapper = settings['wrapper_viewname']
+ attr = settings['attr']
+ renderer = settings['renderer']
context = kw['context']
view(context, permission=permission, for_=for_,
view=obj, name=name, request_type=request_type,