Fixed #29570 -- Added check that MEDIA_URL isn't in STATIC_URL.

This commit is contained in:
Alejandro Dubrovsky 2018-08-23 21:10:39 +07:00 committed by Tim Graham
parent c69d40f943
commit 108c04f572
2 changed files with 19 additions and 0 deletions

View File

@ -52,6 +52,11 @@ def check_settings(base_url=None):
if settings.MEDIA_URL == base_url:
raise ImproperlyConfigured("The MEDIA_URL and STATIC_URL "
"settings must have different values")
if (settings.DEBUG and settings.MEDIA_URL and settings.STATIC_URL and
settings.MEDIA_URL.startswith(settings.STATIC_URL)):
raise ImproperlyConfigured(
"runserver can't serve media if MEDIA_URL is within STATIC_URL."
)
if ((settings.MEDIA_ROOT and settings.STATIC_ROOT) and
(settings.MEDIA_ROOT == settings.STATIC_ROOT)):
raise ImproperlyConfigured("The MEDIA_ROOT and STATIC_ROOT "

View File

@ -0,0 +1,14 @@
from django.contrib.staticfiles.utils import check_settings
from django.core.exceptions import ImproperlyConfigured
from django.test import SimpleTestCase, override_settings
class CheckSettingsTests(SimpleTestCase):
@override_settings(DEBUG=True, MEDIA_URL='/static/media/', STATIC_URL='/static/',)
def test_media_url_in_static_url(self):
msg = "runserver can't serve media if MEDIA_URL is within STATIC_URL."
with self.assertRaisesMessage(ImproperlyConfigured, msg):
check_settings()
with self.settings(DEBUG=False): # Check disabled if DEBUG=False.
check_settings()