Fixed #10065 -- Corrected an error message when an empty urlpattern object is provided. Thanks to Matthew Flanagan for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10385 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
2b1934ff3c
commit
ff166a3cdc
|
@ -209,7 +209,7 @@ class RegexURLResolver(object):
|
||||||
try:
|
try:
|
||||||
iter(patterns)
|
iter(patterns)
|
||||||
except TypeError:
|
except TypeError:
|
||||||
raise ImproperlyConfigured("The included urlconf %s doesn't have any"
|
raise ImproperlyConfigured("The included urlconf %s doesn't have any "
|
||||||
"patterns in it" % self.urlconf_name)
|
"patterns in it" % self.urlconf_name)
|
||||||
return patterns
|
return patterns
|
||||||
url_patterns = property(_get_url_patterns)
|
url_patterns = property(_get_url_patterns)
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
#from django.conf.urls.defaults import *
|
||||||
|
|
|
@ -1,6 +1,19 @@
|
||||||
"""
|
"""
|
||||||
Unit tests for reverse URL lookups.
|
Unit tests for reverse URL lookups.
|
||||||
"""
|
"""
|
||||||
|
__test__ = {'API_TESTS': """
|
||||||
|
|
||||||
|
RegexURLResolver should raise an exception when no urlpatterns exist.
|
||||||
|
|
||||||
|
>>> from django.core.urlresolvers import RegexURLResolver
|
||||||
|
>>> no_urls = 'regressiontests.urlpatterns_reverse.no_urls'
|
||||||
|
>>> resolver = RegexURLResolver(r'^$', no_urls)
|
||||||
|
>>> resolver.url_patterns
|
||||||
|
Traceback (most recent call last):
|
||||||
|
...
|
||||||
|
ImproperlyConfigured: The included urlconf regressiontests.urlpatterns_reverse.no_urls doesn't have any patterns in it
|
||||||
|
"""}
|
||||||
|
|
||||||
|
|
||||||
from django.core.urlresolvers import reverse, NoReverseMatch
|
from django.core.urlresolvers import reverse, NoReverseMatch
|
||||||
from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect
|
from django.http import HttpResponseRedirect, HttpResponsePermanentRedirect
|
||||||
|
@ -101,21 +114,21 @@ class URLPatternReverse(TestCase):
|
||||||
|
|
||||||
class ReverseShortcutTests(TestCase):
|
class ReverseShortcutTests(TestCase):
|
||||||
urls = 'regressiontests.urlpatterns_reverse.urls'
|
urls = 'regressiontests.urlpatterns_reverse.urls'
|
||||||
|
|
||||||
def test_redirect_to_object(self):
|
def test_redirect_to_object(self):
|
||||||
# We don't really need a model; just something with a get_absolute_url
|
# We don't really need a model; just something with a get_absolute_url
|
||||||
class FakeObj(object):
|
class FakeObj(object):
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
return "/hi-there/"
|
return "/hi-there/"
|
||||||
|
|
||||||
res = redirect(FakeObj())
|
res = redirect(FakeObj())
|
||||||
self.assert_(isinstance(res, HttpResponseRedirect))
|
self.assert_(isinstance(res, HttpResponseRedirect))
|
||||||
self.assertEqual(res['Location'], '/hi-there/')
|
self.assertEqual(res['Location'], '/hi-there/')
|
||||||
|
|
||||||
res = redirect(FakeObj(), permanent=True)
|
res = redirect(FakeObj(), permanent=True)
|
||||||
self.assert_(isinstance(res, HttpResponsePermanentRedirect))
|
self.assert_(isinstance(res, HttpResponsePermanentRedirect))
|
||||||
self.assertEqual(res['Location'], '/hi-there/')
|
self.assertEqual(res['Location'], '/hi-there/')
|
||||||
|
|
||||||
def test_redirect_to_view_name(self):
|
def test_redirect_to_view_name(self):
|
||||||
res = redirect('hardcoded2')
|
res = redirect('hardcoded2')
|
||||||
self.assertEqual(res['Location'], '/hardcoded/doc.pdf')
|
self.assertEqual(res['Location'], '/hardcoded/doc.pdf')
|
||||||
|
@ -124,7 +137,7 @@ class ReverseShortcutTests(TestCase):
|
||||||
res = redirect('headlines', year='2008', month='02', day='17')
|
res = redirect('headlines', year='2008', month='02', day='17')
|
||||||
self.assertEqual(res['Location'], '/headlines/2008.02.17/')
|
self.assertEqual(res['Location'], '/headlines/2008.02.17/')
|
||||||
self.assertRaises(NoReverseMatch, redirect, 'not-a-view')
|
self.assertRaises(NoReverseMatch, redirect, 'not-a-view')
|
||||||
|
|
||||||
def test_redirect_to_url(self):
|
def test_redirect_to_url(self):
|
||||||
res = redirect('/foo/')
|
res = redirect('/foo/')
|
||||||
self.assertEqual(res['Location'], '/foo/')
|
self.assertEqual(res['Location'], '/foo/')
|
||||||
|
|
Loading…
Reference in New Issue