diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2009-06-29 14:23:28 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2009-06-29 14:23:28 +0000 |
| commit | 1153d4bf8003485461ea8194f938ee8a77c74364 (patch) | |
| tree | fd564720c4a1250814e03b443e3ecc3b979cf2e4 | |
| parent | c4e240fae3972f4848fe663a171754b0a309dddc (diff) | |
[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
| -rw-r--r-- | django/core/urlresolvers.py | 1 | ||||
| -rw-r--r-- | tests/regressiontests/urlpatterns_reverse/tests.py | 18 |
2 files changed, 18 insertions, 1 deletions
diff --git a/django/core/urlresolvers.py b/django/core/urlresolvers.py index c8642e738f..a63b822d28 100644 --- a/django/core/urlresolvers.py +++ b/django/core/urlresolvers.py @@ -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: diff --git a/tests/regressiontests/urlpatterns_reverse/tests.py b/tests/regressiontests/urlpatterns_reverse/tests.py index 379197085a..522f5f8e9e 100644 --- a/tests/regressiontests/urlpatterns_reverse/tests.py +++ b/tests/regressiontests/urlpatterns_reverse/tests.py @@ -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, '.') |
