summaryrefslogtreecommitdiff
path: root/repoze/bfg/configuration.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-11-19 18:21:09 +0000
committerChris McDonough <chrism@agendaless.com>2009-11-19 18:21:09 +0000
commit1c02105e4fce880bca80e58be3191d2e1368596a (patch)
tree6c0858b9ad1924e03a8f230d3762ee29d8cbd0d4 /repoze/bfg/configuration.py
parenta664df6400b3721a40f665d04b751e7a50b42ebc (diff)
downloadpyramid-1c02105e4fce880bca80e58be3191d2e1368596a.tar.gz
pyramid-1c02105e4fce880bca80e58be3191d2e1368596a.tar.bz2
pyramid-1c02105e4fce880bca80e58be3191d2e1368596a.zip
- Each of the ``repoze.bfg.view.render_view``,
``repoze.bfg.view.render_view_to_iterable``, ``repoze.bfg.view.render_view_to_response``, ``repoze.bfg.view.append_slash_notfound_view``, ``repoze.bfg.view.default_notfound_view``, ``repoze.bfg.view.default_forbidden_view``, and the ``repoze.bfg.configuration.rendered_response`` functions now expects to be called with a request object that has a ``registry`` attribute which represents the current ZCA registry. This should only be a problem when passing a custom request object to code which ends up calling these functions in a unit test. To retrofit tests that end up calling these functions which expect to be able to use a non-registry-aware request object, use the ``repoze.bfg.threadlocal.get_current_request`` API in the test to create the request; this will return a ``repoze.bfg.testing.DummyRequest`` that has the current registry as its ``registry`` attribute. Alternatively, use the ``repoze.bfg.threadlocal.get_current_registry`` API: call this function and add an attribute to your unit test request object named ``registry`` with the result. - The ``repoze.bfg.view.derive_view`` callable has been removed. Use ``repoze.bfg.configuration.Configurator.derive_view`` instead (still not an API, however).
Diffstat (limited to 'repoze/bfg/configuration.py')
-rw-r--r--repoze/bfg/configuration.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/repoze/bfg/configuration.py b/repoze/bfg/configuration.py
index 4024484d6..6e1185a65 100644
--- a/repoze/bfg/configuration.py
+++ b/repoze/bfg/configuration.py
@@ -13,7 +13,6 @@ from zope.configuration import xmlconfig
from zope.component import getGlobalSiteManager
from zope.component import getSiteManager
-from zope.component import queryUtility
from zope.interface import Interface
from zope.interface import implementedBy
@@ -51,7 +50,6 @@ from repoze.bfg.registry import Registry
from repoze.bfg.request import route_request_iface
from repoze.bfg.resource import PackageOverrides
from repoze.bfg.settings import Settings
-from repoze.bfg.settings import get_settings
from repoze.bfg.static import StaticRootFactory
from repoze.bfg.threadlocal import get_current_registry
from repoze.bfg.threadlocal import manager
@@ -59,7 +57,7 @@ from repoze.bfg.traversal import find_interface
from repoze.bfg.traversal import DefaultRootFactory
from repoze.bfg.urldispatch import RoutesMapper
from repoze.bfg.view import render_view_to_response
-from repoze.bfg.view import static as static_view
+from repoze.bfg.view import static
import martian
@@ -69,6 +67,7 @@ class Configurator(object):
if registry is None:
registry = self.make_default_registry()
self.reg = registry
+ self.reg['bfg_configurator'] = self # yes, a cycle; see get_configurator
def make_default_registry(self):
self.reg = Registry()
@@ -397,7 +396,7 @@ class Configurator(object):
wrapped_view = view
authn_policy = self.reg.queryUtility(IAuthenticationPolicy)
authz_policy = self.reg.queryUtility(IAuthorizationPolicy)
- settings = get_settings()
+ settings = self.reg.queryUtility(ISettings)
debug_authorization = False
if settings is not None:
debug_authorization = settings.get('debug_authorization', False)
@@ -577,7 +576,7 @@ class Configurator(object):
self.reg.registerUtility(derived_view, iface, '', info=_info)
def static(self, name, path, cache_max_age=3600, _info=u''):
- view = static_view(path, cache_max_age=cache_max_age)
+ view = static(path, cache_max_age=cache_max_age)
self.route(name, "%s*subpath" % name, view=view,
view_for=StaticRootFactory, factory=StaticRootFactory(path),
_info=_info)
@@ -772,14 +771,19 @@ def decorate_view(wrapped_view, original_view):
pass
return True
-def rendered_response(renderer, response, view, context,request,
+def rendered_response(renderer, response, view, context, request,
renderer_name):
if ( hasattr(response, 'app_iter') and hasattr(response, 'headerlist')
and hasattr(response, 'status') ):
return response
result = renderer(response, {'view':view, 'renderer_name':renderer_name,
'context':context, 'request':request})
- response_factory = queryUtility(IResponseFactory, default=Response)
+ response_factory = Response
+ reg = getattr(request, 'registry', None)
+ if reg is not None:
+ # be kind to old unit tests
+ response_factory = reg.queryUtility(IResponseFactory,
+ default=Response)
response = response_factory(result)
if request is not None: # in tests, it may be None
attrs = request.__dict__