mirror of https://github.com/django/django.git
Fixed #13684 -- if settings.ROOT_URLCONF isn't defined don't blow up with an UnboundLocalError.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14488 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
035cb99b47
commit
96cc7baf0c
|
@ -73,13 +73,15 @@ class BaseHandler(object):
|
|||
from django.conf import settings
|
||||
|
||||
try:
|
||||
# Setup default url resolver for this thread, this code is outside
|
||||
# the try/except so we don't get a spurious "unbound local
|
||||
# variable" exception in the event an exception is raised before
|
||||
# resolver is set
|
||||
urlconf = settings.ROOT_URLCONF
|
||||
urlresolvers.set_urlconf(urlconf)
|
||||
resolver = urlresolvers.RegexURLResolver(r'^/', urlconf)
|
||||
try:
|
||||
# Setup default url resolver for this thread.
|
||||
urlconf = settings.ROOT_URLCONF
|
||||
urlresolvers.set_urlconf(urlconf)
|
||||
resolver = urlresolvers.RegexURLResolver(r'^/', urlconf)
|
||||
response = None
|
||||
|
||||
# Apply request middleware
|
||||
for middleware_method in self._request_middleware:
|
||||
response = middleware_method(request)
|
||||
|
@ -239,4 +241,3 @@ def get_script_name(environ):
|
|||
if script_url:
|
||||
return force_unicode(script_url[:-len(environ.get('PATH_INFO', ''))])
|
||||
return force_unicode(environ.get('SCRIPT_NAME', u''))
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import sys
|
||||
|
||||
from django.test import TestCase
|
||||
from django.conf import settings
|
||||
from django.core.signals import got_request_exception
|
||||
from django.http import HttpResponse
|
||||
from django.test import TestCase
|
||||
|
||||
|
||||
class TestException(Exception):
|
||||
|
@ -694,3 +695,19 @@ class BadMiddlewareTests(BaseMiddlewareExceptionTest):
|
|||
self.assert_middleware_usage(pre_middleware, True, True, True, False)
|
||||
self.assert_middleware_usage(bad_middleware, True, True, True, True)
|
||||
self.assert_middleware_usage(post_middleware, True, True, True, True)
|
||||
|
||||
|
||||
_missing = object()
|
||||
class RootUrlconfTests(TestCase):
|
||||
def test_missing_root_urlconf(self):
|
||||
try:
|
||||
original_ROOT_URLCONF = settings.ROOT_URLCONF
|
||||
del settings.ROOT_URLCONF
|
||||
except AttributeError:
|
||||
original_ROOT_URLCONF = _missing
|
||||
self.assertRaises(AttributeError,
|
||||
self.client.get, "/middleware_exceptions/view/"
|
||||
)
|
||||
|
||||
if original_ROOT_URLCONF is not _missing:
|
||||
settings.ROOT_URLCONF = original_ROOT_URLCONF
|
||||
|
|
Loading…
Reference in New Issue