summaryrefslogtreecommitdiff
path: root/repoze/bfg/view.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2009-11-27 04:46:05 +0000
committerChris McDonough <chrism@agendaless.com>2009-11-27 04:46:05 +0000
commitd0b398eeb8ce9e1b13b2c93674e220d804d2de2e (patch)
treea71b6007259ad04172273bcfed65f7183be6ed22 /repoze/bfg/view.py
parentf850ec2bf2565e1fb227afa77c2ec2e72fe96522 (diff)
downloadpyramid-d0b398eeb8ce9e1b13b2c93674e220d804d2de2e.tar.gz
pyramid-d0b398eeb8ce9e1b13b2c93674e220d804d2de2e.tar.bz2
pyramid-d0b398eeb8ce9e1b13b2c93674e220d804d2de2e.zip
- The ``repoze.bfg.testing.setUp`` function now accepts three extra
optional keyword arguments: ``registry``, ``request`` and ``hook_zca``. If the ``registry`` argument is not ``None``, the argument will be treated as the registry that is set as the "current registry" (it will be returned by ``repoze.bfg.threadlocal.get_current_registry``) for the duration of the test. If the ``registry`` argument is ``None`` (the default), a new registry is created and used for the duration of the test. The value of the ``request`` argument is used as the "current request" (it will be returned by ``repoze.bfg.threadlocal.get_current_request``) for the duration of the test; it defaults to ``None``. If ``hook_zca`` is ``True`` (the default), the ``zope.component.getSiteManager`` function will be hooked with a function that returns the value of ``registry`` (or the default-created registry if ``registry`` is ``None``) instead of the registry returned by ``zope.component.getGlobalSiteManager``, causing the Zope Component Architecture API (``getSiteManager``, ``getAdapter``, ``getUtility``, and so on) to use the registry we're using for testing instead of the global ZCA registry. - The ``repoze.bfg.testing.tearDown`` function now accepts an ``unhook_zca`` argument. If this argument is ``True`` (the default), ``zope.component.getSiteManager.reset()`` will be called, causing the "base" registry to once again start returnining the result of ``zope.component.getSiteManager``. - Remove hook_zca and unhook_zca methods from Configurator.
Diffstat (limited to 'repoze/bfg/view.py')
-rw-r--r--repoze/bfg/view.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/repoze/bfg/view.py b/repoze/bfg/view.py
index f037ed839..d682d762b 100644
--- a/repoze/bfg/view.py
+++ b/repoze/bfg/view.py
@@ -28,6 +28,7 @@ from repoze.bfg.interfaces import IView
from repoze.bfg.path import caller_package
from repoze.bfg.resource import resolve_resource_spec
from repoze.bfg.static import PackageURLParser
+from repoze.bfg.threadlocal import get_current_registry
# b/c imports
from repoze.bfg.security import view_execution_permitted
@@ -61,7 +62,10 @@ def render_view_to_response(context, request, name='', secure=True):
``args`` attribute explains why the view access was disallowed.
If ``secure`` is ``False``, no permission checking is done."""
provides = map(providedBy, (context, request))
- reg = request.registry
+ try:
+ reg = request.registry
+ except AttributeError:
+ reg = get_current_registry()
view = reg.adapters.lookup(provides, IView, name=name)
if view is None:
return None