1
0
mirror of https://github.com/django/django.git synced 2025-07-18 16:49:13 +00:00

[1.0.X] Fixed #10834 -- Added bucket condition to ensure that URL resolvers won't ever return None. Thanks to Chris Cahoon for the patch.

Merge of r11120 from trunk.


git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@11122 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2009-06-29 14:23:28 +00:00
parent c4e240fae3
commit 1153d4bf80
2 changed files with 18 additions and 1 deletions

View File

@ -192,6 +192,7 @@ class RegexURLResolver(object):
return sub_match[0], sub_match[1], sub_match_dict
tried.append(pattern.regex.pattern)
raise Resolver404, {'tried': tried, 'path': new_path}
raise Resolver404, {'tried': [], 'path' : path}
def _get_urlconf_module(self):
try:

View File

@ -2,7 +2,9 @@
Unit tests for reverse URL lookups.
"""
from django.core.urlresolvers import reverse, NoReverseMatch
import unittest
from django.core.urlresolvers import reverse, resolve, NoReverseMatch, Resolver404
from django.test import TestCase
test_data = (
@ -96,3 +98,17 @@ class URLPatternReverse(TestCase):
else:
self.assertEquals(got, expected)
class ResolverTests(unittest.TestCase):
def test_non_regex(self):
"""
Verifies that we raise a Resolver404 if what we are resolving doesn't
meet the basic requirements of a path to match - i.e., at the very
least, it matches the root pattern '^/'. We must never return None
from resolve, or we will get a TypeError further down the line.
Regression for #10834.
"""
self.assertRaises(Resolver404, resolve, '')
self.assertRaises(Resolver404, resolve, 'a')
self.assertRaises(Resolver404, resolve, '\\')
self.assertRaises(Resolver404, resolve, '.')