summaryrefslogtreecommitdiff
path: root/repoze/bfg/router.py
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2010-01-24 08:45:35 +0000
committerChris McDonough <chrism@agendaless.com>2010-01-24 08:45:35 +0000
commit333bd06861e55f97dfcaeebff100657734829add (patch)
tree495b62d5b297a52f29f042adca5d54a319d413c2 /repoze/bfg/router.py
parentcc6a44df0a8535d2bc91944ae34a2521c12c7a07 (diff)
downloadpyramid-333bd06861e55f97dfcaeebff100657734829add.tar.gz
pyramid-333bd06861e55f97dfcaeebff100657734829add.tar.bz2
pyramid-333bd06861e55f97dfcaeebff100657734829add.zip
Merge reversepolarity branch.
Diffstat (limited to 'repoze/bfg/router.py')
-rw-r--r--repoze/bfg/router.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/repoze/bfg/router.py b/repoze/bfg/router.py
index efbd301b5..4ac2481f1 100644
--- a/repoze/bfg/router.py
+++ b/repoze/bfg/router.py
@@ -5,6 +5,7 @@ from zope.interface import providedBy
from repoze.bfg.interfaces import IDebugLogger
from repoze.bfg.interfaces import IForbiddenView
from repoze.bfg.interfaces import INotFoundView
+from repoze.bfg.interfaces import IRequest
from repoze.bfg.interfaces import IRootFactory
from repoze.bfg.interfaces import IRouteRequest
from repoze.bfg.interfaces import IRouter
@@ -70,6 +71,8 @@ class Router(object):
attrs = request.__dict__
attrs['registry'] = registry
has_listeners and registry.notify(NewRequest(request))
+
+ request_iface = IRequest
try:
# find the root
@@ -82,10 +85,10 @@ class Router(object):
environ['bfg.routes.route'] = route
environ['bfg.routes.matchdict'] = match
request.matchdict = match
- iface = registry.queryUtility(IRouteRequest,
- name=route.name)
- if iface is not None:
- alsoProvides(request, iface)
+ request_iface = registry.queryUtility(
+ IRouteRequest,
+ name=route.name,
+ default=IRequest)
root_factory = route.factory or self.root_factory
root = root_factory(request)
@@ -103,9 +106,10 @@ class Router(object):
tdict['virtual_root_path'])
attrs.update(tdict)
has_listeners and registry.notify(AfterTraversal(request))
- provides = map(providedBy, (context, request))
+ context_iface = providedBy(context)
view_callable = adapters.lookup(
- provides, IView, name=view_name, default=None)
+ (request_iface, context_iface),
+ IView, name=view_name, default=None)
# invoke the view callable
if view_callable is None: