From 1a48c8b7952d35b217c3adf3f6be11026fefd03b Mon Sep 17 00:00:00 2001 From: Laurence Rowe Date: Wed, 24 Apr 2013 14:38:32 -0700 Subject: Laurence Rowe contributor agreement. --- CONTRIBUTORS.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt index 97eb54f7b..7cd7123c5 100644 --- a/CONTRIBUTORS.txt +++ b/CONTRIBUTORS.txt @@ -198,3 +198,5 @@ Contributors - Georges Dubus, 2013/03/21 - Jason McKellar, 2013/03/28 + +- Laurence Rowe, 2013/04/24 -- cgit v1.2.3 From f3bffdfc35a5ecbb45b5f63bdb08bdc41553b63d Mon Sep 17 00:00:00 2001 From: Laurence Rowe Date: Wed, 24 Apr 2013 14:38:41 -0700 Subject: Consider superclass views after predicate mismatch The merged fix for #786 only worked for views registered to an interface. --- pyramid/router.py | 2 +- pyramid/tests/test_router.py | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/pyramid/router.py b/pyramid/router.py index 63c12a1af..f780f6711 100644 --- a/pyramid/router.py +++ b/pyramid/router.py @@ -165,7 +165,7 @@ class Router(object): except PredicateMismatch: # look for other views that meet the predicate # criteria - for iface in context_iface.flattened(): + for iface in context_iface.__sro__[1:]: view_callable = adapters.lookup( (IViewClassifier, request.request_iface, iface), IView, name=view_name, default=None) diff --git a/pyramid/tests/test_router.py b/pyramid/tests/test_router.py index 432959147..b836d7d72 100644 --- a/pyramid/tests/test_router.py +++ b/pyramid/tests/test_router.py @@ -1180,11 +1180,9 @@ class TestRouter(unittest.TestCase): from pyramid.interfaces import IViewClassifier from pyramid.interfaces import IRequest, IResponse from pyramid.response import Response - from zope.interface import Interface, implementer - class IContext(Interface): + class BaseContext: pass - @implementer(IContext) - class DummyContext: + class DummyContext(BaseContext): pass context = DummyContext() self._registerTraverserFactory(context) @@ -1193,7 +1191,7 @@ class TestRouter(unittest.TestCase): DummyContext) good_view = DummyView('abc') self._registerView(self.config.derive_view(good_view), - '', IViewClassifier, IRequest, IContext) + '', IViewClassifier, IRequest, BaseContext) router = self._makeOne() def make_response(s): return Response(s) -- cgit v1.2.3