Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fixed #8725 -- Handle empty URL patterns in reverse().

git-svn-id: http://code.djangoproject.com/svn/django/trunk@8763 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit e1ea7014ad0a0f17c339fb1c1cc3e269ce87e31c 1 parent 30c7ce9
@malcolmt malcolmt authored
View
6 django/utils/regex_helper.py
@@ -74,7 +74,11 @@ def normalize(pattern):
# A "while" loop is used here because later on we need to be able to peek
# at the next character and possibly go around without consuming another
# one at the top of the loop.
- ch, escaped = pattern_iter.next()
+ try:
+ ch, escaped = pattern_iter.next()
+ except StopIteration:
+ return zip([''], [[]])
+
try:
while True:
if escaped:
View
11 tests/regressiontests/urlpatterns_reverse/extra_urls.py
@@ -0,0 +1,11 @@
+"""
+Some extra URL patterns that are included at the top level.
+"""
+
+from django.conf.urls.defaults import *
+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"),
+)
View
3  tests/regressiontests/urlpatterns_reverse/tests.py
@@ -61,6 +61,9 @@
('inner-extra', NoReverseMatch, ['fred', 'inner'], {}),
('disjunction', NoReverseMatch, ['foo'], {}),
('inner-disjunction', NoReverseMatch, ['10', '11'], {}),
+ ('extra-places', '/e-places/10/', ['10'], {}),
+ ('extra-people', '/e-people/fred/', ['fred'], {}),
+ ('extra-people', '/e-people/fred/', [], {'name': 'fred'}),
)
class URLPatternReverse(TestCase):
View
1  tests/regressiontests/urlpatterns_reverse/urls.py
@@ -40,6 +40,7 @@
url(r'^(?i)test/2/?$', empty_view, name="test2"),
url(r'^outer/(?P<outer>\d+)/',
include('regressiontests.urlpatterns_reverse.included_urls')),
+ url('', include('regressiontests.urlpatterns_reverse.extra_urls')),
# This is non-reversible, but we shouldn't blow up when parsing it.
url(r'^(?:foo|bar)(\w+)/$', empty_view, name="disjunction"),

0 comments on commit e1ea701

Please sign in to comment.
Something went wrong with that request. Please try again.