summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorTim Graham <timograham@gmail.com>2014-04-23 08:49:12 -0400
committerTim Graham <timograham@gmail.com>2014-04-23 08:49:53 -0400
commite192f131033d68e1b018263aee6fe8804a923b22 (patch)
tree504ab99384aa9c8282c6b67fd1477b1cd3a67fdc /tests
parentc3228ef3e213c6149f21ac51648823017c1d9b9f (diff)
[1.7.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.py6
-rw-r--r--tests/urlpatterns_reverse/views.py10
2 files changed, 15 insertions, 1 deletions
diff --git a/tests/urlpatterns_reverse/urls.py b/tests/urlpatterns_reverse/urls.py
index c79715e5bd..f7b160f626 100644
--- a/tests/urlpatterns_reverse/urls.py
+++ b/tests/urlpatterns_reverse/urls.py
@@ -1,6 +1,6 @@
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('',
@@ -51,6 +51,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 610feb8451..efd5689c31 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
@@ -55,3 +57,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,
+)