mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #10834 -- Added bucket condition to ensure that URL resolvers won't ever return None. Thanks to Chris Cahoon for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@11120 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -195,6 +195,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: | ||||
|   | ||||
| @@ -14,8 +14,9 @@ Traceback (most recent call last): | ||||
| 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 @@ 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, '.') | ||||
|  | ||||
| class ReverseShortcutTests(TestCase): | ||||
|     urls = 'regressiontests.urlpatterns_reverse.urls' | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user