Fixed #29353 -- Made StaticFilesHandler return a 404 response when settings.DEBUG is False
This commit is contained in:
parent
c591bc3cce
commit
a9189d27ef
|
@ -4,6 +4,7 @@ from urllib.request import url2pathname
|
|||
from django.conf import settings
|
||||
from django.contrib.staticfiles import utils
|
||||
from django.contrib.staticfiles.views import serve
|
||||
from django.core.handlers.exception import response_for_exception
|
||||
from django.core.handlers.wsgi import WSGIHandler, get_path_info
|
||||
|
||||
|
||||
|
@ -59,6 +60,7 @@ class StaticFilesHandler(WSGIHandler):
|
|||
if settings.DEBUG:
|
||||
from django.views import debug
|
||||
return debug.technical_404_response(request, e)
|
||||
return response_for_exception(request, e)
|
||||
return super().get_response(request)
|
||||
|
||||
def __call__(self, environ, start_response):
|
||||
|
|
|
@ -16,7 +16,7 @@ from django.contrib.staticfiles.management.commands import (
|
|||
)
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.core.management import CommandError, call_command
|
||||
from django.test import override_settings
|
||||
from django.test import RequestFactory, override_settings
|
||||
from django.test.utils import extend_sys_path
|
||||
from django.utils import timezone
|
||||
from django.utils._os import symlinks_supported
|
||||
|
@ -44,6 +44,18 @@ class TestRunserver(StaticFilesTestCase):
|
|||
command.get_handler(use_static_handler=True, insecure_serving=True)
|
||||
self.assertEqual(mocked.call_count, 1)
|
||||
|
||||
def test_404_response(self):
|
||||
command = runserver.Command()
|
||||
handler = command.get_handler(use_static_handler=True, insecure_serving=True)
|
||||
missing_static_file = os.path.join(settings.STATIC_URL, 'unknown.css')
|
||||
req = RequestFactory().get(missing_static_file)
|
||||
with override_settings(DEBUG=False):
|
||||
response = handler.get_response(req)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
with override_settings(DEBUG=True):
|
||||
response = handler.get_response(req)
|
||||
self.assertEqual(response.status_code, 404)
|
||||
|
||||
|
||||
class TestFindStatic(TestDefaults, CollectionTestCase):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue