diff options
| author | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-09-30 05:52:35 +0000 |
|---|---|---|
| committer | Malcolm Tredinnick <malcolm.tredinnick@gmail.com> | 2008-09-30 05:52:35 +0000 |
| commit | 37ee86b7ee63e057db0a5b868be7f799d8a4d40e (patch) | |
| tree | e54c2ed99daa4eed37901c87f0d1e5faf62c806f /tests/regressiontests/urlpatterns_reverse | |
| parent | ba592950689a06893c77bc97040770f89dd5a317 (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/regressiontests/urlpatterns_reverse')
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 - |
