summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAthena <dootdedoot@afunamatata.fastmail.fm>2014-02-27 23:32:20 +0800
committerBaptiste Mispelon <bmispelon@gmail.com>2014-03-05 00:35:03 +0100
commit5d568bcfa66916e3de61e0090c724c899debd981 (patch)
treebc08e316f85706597b95314a3cfdb0e3c2c66ad6 /tests
parenta248c88372fa445c1159511fae2b98208f149f69 (diff)
downloaddjango-5d568bcfa66916e3de61e0090c724c899debd981.tar.gz
Fixed #7571 -- Fixed parameter matching in include()'d urlpattern
Fixed URL resolving in the case where an outer regex includes an inner regex and both regexes use positional parameters instead of named groups, causing the outer regex's parameters to override the inner regex's. Modified the regex url resolver so that it will concatenates and then normalizes, instead of normalizing and then concatenating.
Diffstat (limited to 'tests')
-rw-r--r--tests/urlpatterns_reverse/included_no_kwargs_urls.py8
-rw-r--r--tests/urlpatterns_reverse/tests.py1
-rw-r--r--tests/urlpatterns_reverse/urls.py1
3 files changed, 10 insertions, 0 deletions
diff --git a/tests/urlpatterns_reverse/included_no_kwargs_urls.py b/tests/urlpatterns_reverse/included_no_kwargs_urls.py
new file mode 100644
index 0000000000..e408487f9b
--- /dev/null
+++ b/tests/urlpatterns_reverse/included_no_kwargs_urls.py
@@ -0,0 +1,8 @@
+from django.conf.urls import patterns, url
+
+from .views import empty_view
+
+
+urlpatterns = patterns('',
+ url(r'^inner-no-kwargs/(\d+)/', empty_view, name="inner-no-kwargs")
+)
diff --git a/tests/urlpatterns_reverse/tests.py b/tests/urlpatterns_reverse/tests.py
index 02ac4e31ad..a57b7e2a17 100644
--- a/tests/urlpatterns_reverse/tests.py
+++ b/tests/urlpatterns_reverse/tests.py
@@ -120,6 +120,7 @@ test_data = (
('inner-extra', '/outer/42/extra/inner/', [], {'extra': 'inner', 'outer': '42'}),
('inner-extra', '/outer/42/extra/inner/', ['42', 'inner'], {}),
('inner-extra', NoReverseMatch, ['fred', 'inner'], {}),
+ ('inner-no-kwargs', '/outer-no-kwargs/42/inner-no-kwargs/1/', ['42', '1'], {}),
('disjunction', NoReverseMatch, ['foo'], {}),
('inner-disjunction', NoReverseMatch, ['10', '11'], {}),
('extra-places', '/e-places/10/', ['10'], {}),
diff --git a/tests/urlpatterns_reverse/urls.py b/tests/urlpatterns_reverse/urls.py
index d669260683..923d0c7558 100644
--- a/tests/urlpatterns_reverse/urls.py
+++ b/tests/urlpatterns_reverse/urls.py
@@ -44,6 +44,7 @@ urlpatterns = patterns('',
url(r'^test/1/?', empty_view, name="test"),
url(r'^(?i)test/2/?$', empty_view, name="test2"),
url(r'^outer/(?P<outer>\d+)/', include('urlpatterns_reverse.included_urls')),
+ url(r'^outer-no-kwargs/(\d+)/', include('urlpatterns_reverse.included_no_kwargs_urls')),
url('', include('urlpatterns_reverse.extra_urls')),
# This is non-reversible, but we shouldn't blow up when parsing it.