diff options
| author | Arndt Droullier <arndt@dvelectric.de> | 2012-03-30 15:23:55 +0300 |
|---|---|---|
| committer | Arndt Droullier <arndt@dvelectric.de> | 2012-03-30 15:23:55 +0300 |
| commit | c52e649c6773a99d6077f28ebe0f505d32e72ba6 (patch) | |
| tree | 0fb7bb64465a135dd26cc8ad6a9c570030aacc26 | |
| parent | 360f251a1765e53a15bec53c91068880f47e503f (diff) | |
| download | pyramid-c52e649c6773a99d6077f28ebe0f505d32e72ba6.tar.gz pyramid-c52e649c6773a99d6077f28ebe0f505d32e72ba6.tar.bz2 pyramid-c52e649c6773a99d6077f28ebe0f505d32e72ba6.zip | |
Use predicate.__text__ in predicate mismatch exceptions. See Issue #502
| -rw-r--r-- | pyramid/config/views.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/pyramid/config/views.py b/pyramid/config/views.py index ad4df28d8..ac41f7363 100644 --- a/pyramid/config/views.py +++ b/pyramid/config/views.py @@ -276,11 +276,13 @@ class ViewDeriver(object): if not predicates: return view def predicate_wrapper(context, request): - if all((predicate(context, request) for predicate in predicates)): - return view(context, request) - view_name = getattr(view, '__name__', view) - raise PredicateMismatch( - 'predicate mismatch for view %s' % view_name) + for predicate in predicates: + if not predicate(context, request): + view_name = getattr(view, '__name__', view) + raise PredicateMismatch( + 'predicate mismatch for view %s (%s)' % ( + view_name, predicate.__text__)) + return view(context, request) def checker(context, request): return all((predicate(context, request) for predicate in predicates)) |
