summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-09-30 05:52:35 +0000
committerMalcolm Tredinnick <malcolm.tredinnick@gmail.com>2008-09-30 05:52:35 +0000
commit37ee86b7ee63e057db0a5b868be7f799d8a4d40e (patch)
treee54c2ed99daa4eed37901c87f0d1e5faf62c806f /tests
parentba592950689a06893c77bc97040770f89dd5a317 (diff)
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. git-svn-id: http://code.djangoproject.com/svn/django/trunk@9099 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 -