From fbfaa35fb0a2a1206221e00c56cf6136cf93b6f1 Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sat, 31 Mar 2012 13:01:59 +0000 Subject: [PATCH] Required that the MEDIA_URL and STATIC_URL settings end with a slash, per the deprecation timeline. git-svn-id: http://code.djangoproject.com/svn/django/trunk@17845 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/conf/__init__.py | 3 +-- tests/regressiontests/settings_tests/tests.py | 19 ++++++++++++------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/django/conf/__init__.py b/django/conf/__init__.py index c81456dd92..0d8f4b6b83 100644 --- a/django/conf/__init__.py +++ b/django/conf/__init__.py @@ -69,8 +69,7 @@ class BaseSettings(object): """ def __setattr__(self, name, value): if name in ("MEDIA_URL", "STATIC_URL") and value and not value.endswith('/'): - warnings.warn("If set, %s must end with a slash" % name, - DeprecationWarning) + raise ImproperlyConfigured("If set, %s must end with a slash" % name) elif name == "ADMIN_MEDIA_PREFIX": warnings.warn("The ADMIN_MEDIA_PREFIX setting has been removed; " "use STATIC_URL instead.", DeprecationWarning) diff --git a/tests/regressiontests/settings_tests/tests.py b/tests/regressiontests/settings_tests/tests.py index 48dc1a1994..0b10bb12f8 100644 --- a/tests/regressiontests/settings_tests/tests.py +++ b/tests/regressiontests/settings_tests/tests.py @@ -1,6 +1,7 @@ import os from django.conf import settings, global_settings +from django.core.exceptions import ImproperlyConfigured from django.http import HttpRequest from django.test import TransactionTestCase, TestCase, signals from django.test.utils import override_settings @@ -185,22 +186,26 @@ class TrailingSlashURLTests(TestCase): def test_no_end_slash(self): """ - MEDIA_URL raises an DeprecationWarning error if it doesn't end in a - slash. + MEDIA_URL and STATIC_URL raise an ImproperlyConfigured exception + if they doesn't end in a slash. """ - import warnings - warnings.filterwarnings('error', 'If set, MEDIA_URL must end with a slash', DeprecationWarning) - def setattr_settings(settings_module, attr, value): setattr(settings_module, attr, value) - self.assertRaises(DeprecationWarning, setattr_settings, + self.assertRaises(ImproperlyConfigured, setattr_settings, self.settings_module, 'MEDIA_URL', '/foo') - self.assertRaises(DeprecationWarning, setattr_settings, + self.assertRaises(ImproperlyConfigured, setattr_settings, self.settings_module, 'MEDIA_URL', 'http://media.foo.com') + self.assertRaises(ImproperlyConfigured, setattr_settings, + self.settings_module, 'STATIC_URL', '/foo') + + self.assertRaises(ImproperlyConfigured, setattr_settings, + self.settings_module, 'STATIC_URL', + 'http://static.foo.com') + def test_double_slash(self): """ If a MEDIA_URL ends in more than one slash, presume they know what