mirror of
https://github.com/django/django.git
synced 2025-10-31 09:41:08 +00:00
Fixed #6218 -- Made MEDIA_URL and STATIC_URL require a trailing slash to ensure there is a consistent way to combine paths in templates. Thanks to Michael Toomim, Chris Heisel and Chris Beaven.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15130 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
from django.conf import settings
|
||||
from django.utils import unittest
|
||||
from django.conf import settings, UserSettingsHolder, global_settings
|
||||
|
||||
|
||||
class SettingsTests(unittest.TestCase):
|
||||
|
||||
@@ -15,3 +17,62 @@ class SettingsTests(unittest.TestCase):
|
||||
|
||||
def test_settings_delete_wrapped(self):
|
||||
self.assertRaises(TypeError, delattr, settings, '_wrapped')
|
||||
|
||||
|
||||
class TrailingSlashURLTests(unittest.TestCase):
|
||||
settings_module = settings
|
||||
|
||||
def setUp(self):
|
||||
self._original_media_url = self.settings_module.MEDIA_URL
|
||||
|
||||
def tearDown(self):
|
||||
self.settings_module.MEDIA_URL = self._original_media_url
|
||||
|
||||
def test_blank(self):
|
||||
"""
|
||||
If blank, no PendingDeprecationWarning error will be raised, even though it
|
||||
doesn't end in a slash.
|
||||
"""
|
||||
self.settings_module.MEDIA_URL = ''
|
||||
self.assertEqual('', self.settings_module.MEDIA_URL)
|
||||
|
||||
def test_end_slash(self):
|
||||
"""
|
||||
MEDIA_URL works if you end in a slash.
|
||||
"""
|
||||
self.settings_module.MEDIA_URL = '/foo/'
|
||||
self.assertEqual('/foo/', self.settings_module.MEDIA_URL)
|
||||
|
||||
self.settings_module.MEDIA_URL = 'http://media.foo.com/'
|
||||
self.assertEqual('http://media.foo.com/',
|
||||
self.settings_module.MEDIA_URL)
|
||||
|
||||
def test_no_end_slash(self):
|
||||
"""
|
||||
MEDIA_URL raises an PendingDeprecationWarning error if it doesn't end in a
|
||||
slash.
|
||||
"""
|
||||
import warnings
|
||||
warnings.filterwarnings('error', 'If set, MEDIA_URL must end with a slash', PendingDeprecationWarning)
|
||||
|
||||
def setattr_settings(settings_module, attr, value):
|
||||
setattr(settings_module, attr, value)
|
||||
|
||||
self.assertRaises(PendingDeprecationWarning, setattr_settings,
|
||||
self.settings_module, 'MEDIA_URL', '/foo')
|
||||
|
||||
self.assertRaises(PendingDeprecationWarning, setattr_settings,
|
||||
self.settings_module, 'MEDIA_URL',
|
||||
'http://media.foo.com')
|
||||
|
||||
def test_double_slash(self):
|
||||
"""
|
||||
If a MEDIA_URL ends in more than one slash, presume they know what
|
||||
they're doing.
|
||||
"""
|
||||
self.settings_module.MEDIA_URL = '/stupid//'
|
||||
self.assertEqual('/stupid//', self.settings_module.MEDIA_URL)
|
||||
|
||||
self.settings_module.MEDIA_URL = 'http://media.foo.com/stupid//'
|
||||
self.assertEqual('http://media.foo.com/stupid//',
|
||||
self.settings_module.MEDIA_URL)
|
||||
|
||||
Reference in New Issue
Block a user