diff options
| author | Tim Graham <timograham@gmail.com> | 2014-04-23 08:49:12 -0400 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2014-04-23 08:56:13 -0400 |
| commit | 6915220ff9d6eeb2a669421d06bce9403ed6480c (patch) | |
| tree | 5d3dcc8b1732aed8e0c79b628c7a39ae92e2aab8 /tests | |
| parent | c5306d4af1e9430d2397e8d83b37fa3598a17e83 (diff) | |
[1.6.x] Fixed #22486 -- Restored the ability to reverse views created using functools.partial.
Regression in 8b93b31487d6d3b0fcbbd0498991ea0db9088054.
Thanks rcoup for the report.
Backport of 3c06b2f2a3 from master
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/urlpatterns_reverse/urls.py | 6 | ||||
| -rw-r--r-- | tests/urlpatterns_reverse/views.py | 10 |
2 files changed, 15 insertions, 1 deletions
diff --git a/tests/urlpatterns_reverse/urls.py b/tests/urlpatterns_reverse/urls.py index 0412f258ac..ac112c69cb 100644 --- a/tests/urlpatterns_reverse/urls.py +++ b/tests/urlpatterns_reverse/urls.py @@ -2,7 +2,7 @@ from __future__ import absolute_import from django.conf.urls import patterns, url, include -from .views import empty_view, absolute_kwargs_view +from .views import empty_view, empty_view_partial, empty_view_wrapped, absolute_kwargs_view other_patterns = patterns('', @@ -56,6 +56,10 @@ urlpatterns = patterns('', # This is non-reversible, but we shouldn't blow up when parsing it. url(r'^(?:foo|bar)(\w+)/$', empty_view, name="disjunction"), + # Partials should be fine. + url(r'^partial/', empty_view_partial, name="partial"), + url(r'^partial_wrapped/', empty_view_wrapped, name="partial_wrapped"), + # Regression views for #9038. See tests for more details url(r'arg_view/$', 'kwargs_view'), url(r'arg_view/(?P<arg1>\d+)/$', 'kwargs_view'), diff --git a/tests/urlpatterns_reverse/views.py b/tests/urlpatterns_reverse/views.py index f8148e1f3e..dd1d97c700 100644 --- a/tests/urlpatterns_reverse/views.py +++ b/tests/urlpatterns_reverse/views.py @@ -1,3 +1,5 @@ +from functools import partial, update_wrapper + from django.http import HttpResponse from django.views.generic import RedirectView from django.core.urlresolvers import reverse_lazy @@ -45,3 +47,11 @@ def login_required_view(request): def bad_view(request, *args, **kwargs): raise ValueError("I don't think I'm getting good value for this view") + + +empty_view_partial = partial(empty_view, template_name="template.html") + + +empty_view_wrapped = update_wrapper( + partial(empty_view, template_name="template.html"), empty_view, +) |
