diff options
| author | Chris McDonough <chrism@agendaless.com> | 2010-01-24 08:45:35 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2010-01-24 08:45:35 +0000 |
| commit | 333bd06861e55f97dfcaeebff100657734829add (patch) | |
| tree | 495b62d5b297a52f29f042adca5d54a319d413c2 /repoze/bfg/router.py | |
| parent | cc6a44df0a8535d2bc91944ae34a2521c12c7a07 (diff) | |
| download | pyramid-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.py | 16 |
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: |
