Author: russellm Date: 2009-06-29 09:02:17 -0500 (Mon, 29 Jun 2009) New Revision: 11120
Modified: django/trunk/django/core/urlresolvers.py django/trunk/tests/regressiontests/urlpatterns_reverse/tests.py Log: Fixed #10834 -- Added bucket condition to ensure that URL resolvers won't ever return None. Thanks to Chris Cahoon for the patch. Modified: django/trunk/django/core/urlresolvers.py =================================================================== --- django/trunk/django/core/urlresolvers.py 2009-06-29 12:29:48 UTC (rev 11119) +++ django/trunk/django/core/urlresolvers.py 2009-06-29 14:02:17 UTC (rev 11120) @@ -195,6 +195,7 @@ 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: Modified: django/trunk/tests/regressiontests/urlpatterns_reverse/tests.py =================================================================== --- django/trunk/tests/regressiontests/urlpatterns_reverse/tests.py 2009-06-29 12:29:48 UTC (rev 11119) +++ django/trunk/tests/regressiontests/urlpatterns_reverse/tests.py 2009-06-29 14:02:17 UTC (rev 11120) @@ -14,8 +14,9 @@ ImproperlyConfigured: The included urlconf regressiontests.urlpatterns_reverse.no_urls doesn't have any patterns in it """} +import unittest -from django.core.urlresolvers import reverse, NoReverseMatch +from django.core.urlresolvers import reverse, resolve, NoReverseMatch, Resolver404 from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect from django.shortcuts import redirect from django.test import TestCase @@ -112,6 +113,21 @@ 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, '.') + class ReverseShortcutTests(TestCase): urls = 'regressiontests.urlpatterns_reverse.urls' --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-updates@googlegroups.com To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-updates?hl=en -~----------~----~----~----~------~----~------~--~---