summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-09-30 05:57:13 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-09-30 05:57:13 +0000
commitb17453bbc97bace0ce0a875d217663c3af801677 (patch)
tree9f2cdff369bb69c4318eb61d511de374f0ed8f36 /tests
parentfe19e9f4aff713f979bb80bd735bd8392f7f63fe (diff)
[1.0.X] Fixed another case of reverse URL resolving that wasn't working.
This is a similar situation to that fixed in r9087. We weren't merging multiple levels of include() calls together correctly. Backported from r9099 on trunk. git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@9100 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests')
-rw-r--r--tests/regressiontests/urlpatterns_reverse/extra_urls.py2
-rw-r--r--tests/regressiontests/urlpatterns_reverse/included_urls2.py14
-rw-r--r--tests/regressiontests/urlpatterns_reverse/tests.py6
3 files changed, 22 insertions, 0 deletions
diff --git a/tests/regressiontests/urlpatterns_reverse/extra_urls.py b/tests/regressiontests/urlpatterns_reverse/extra_urls.py
index ccf2365878..c171f6d6f9 100644
--- a/tests/regressiontests/urlpatterns_reverse/extra_urls.py
+++ b/tests/regressiontests/urlpatterns_reverse/extra_urls.py
@@ -8,4 +8,6 @@ from views import empty_view
urlpatterns = patterns('',
url(r'^e-places/(\d+)/$', empty_view, name='extra-places'),
url(r'^e-people/(?P<name>\w+)/$', empty_view, name="extra-people"),
+ url('', include('regressiontests.urlpatterns_reverse.included_urls2')),
+ url(r'^prefix/(?P<prefix>\w+)/', include('regressiontests.urlpatterns_reverse.included_urls2')),
)
diff --git a/tests/regressiontests/urlpatterns_reverse/included_urls2.py b/tests/regressiontests/urlpatterns_reverse/included_urls2.py
new file mode 100644
index 0000000000..f414ca638c
--- /dev/null
+++ b/tests/regressiontests/urlpatterns_reverse/included_urls2.py
@@ -0,0 +1,14 @@
+"""
+These URL patterns are included in two different ways in the main urls.py, with
+an extra argument present in one case. Thus, there are two different ways for
+each name to resolve and Django must distinguish the possibilities based on the
+argument list.
+"""
+
+from django.conf.urls.defaults import *
+from views import empty_view
+
+urlpatterns = patterns('',
+ url(r'^part/(?P<value>\w+)/$', empty_view, name="part"),
+ url(r'^part2/(?:(?P<value>\w+)/)?$', empty_view, name="part2"),
+)
diff --git a/tests/regressiontests/urlpatterns_reverse/tests.py b/tests/regressiontests/urlpatterns_reverse/tests.py
index 6ccf1443dc..379197085a 100644
--- a/tests/regressiontests/urlpatterns_reverse/tests.py
+++ b/tests/regressiontests/urlpatterns_reverse/tests.py
@@ -65,6 +65,12 @@ test_data = (
('extra-places', '/e-places/10/', ['10'], {}),
('extra-people', '/e-people/fred/', ['fred'], {}),
('extra-people', '/e-people/fred/', [], {'name': 'fred'}),
+ ('part', '/part/one/', [], {'value': 'one'}),
+ ('part', '/prefix/xx/part/one/', [], {'value': 'one', 'prefix': 'xx'}),
+ ('part2', '/part2/one/', [], {'value': 'one'}),
+ ('part2', '/part2/', [], {}),
+ ('part2', '/prefix/xx/part2/one/', [], {'value': 'one', 'prefix': 'xx'}),
+ ('part2', '/prefix/xx/part2/', [], {'prefix': 'xx'}),
# Regression for #9038
# These views are resolved by method name. Each method is deployed twice -