Add support for COMPRESS_CSS_HASHING_METHOD = None
This commit is contained in:
@@ -70,6 +70,8 @@ class CssAbsoluteFilter(FilterBase):
|
||||
suffix = get_hashed_mtime(filename)
|
||||
elif settings.COMPRESS_CSS_HASHING_METHOD in ("hash", "content"):
|
||||
suffix = get_hashed_content(filename)
|
||||
elif settings.COMPRESS_CSS_HASHING_METHOD is None:
|
||||
suffix = None
|
||||
else:
|
||||
raise FilterError('COMPRESS_CSS_HASHING_METHOD is configured '
|
||||
'with an unknown method (%s).' %
|
||||
|
||||
@@ -123,6 +123,24 @@ class CssAbsolutizingTestCase(TestCase):
|
||||
settings.COMPRESS_URL = self.old_url
|
||||
settings.COMPRESS_CSS_HASHING_METHOD = self.old_hashing_method
|
||||
|
||||
def test_css_no_hash(self):
|
||||
settings.COMPRESS_CSS_HASHING_METHOD = None
|
||||
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
|
||||
params = {
|
||||
'url': settings.COMPRESS_URL,
|
||||
}
|
||||
output = ("p { background: url('%(url)simg/python.png') }"
|
||||
"p { filter: Alpha(src='%(url)simg/python.png') }") % params
|
||||
filter = CssAbsoluteFilter(self.content)
|
||||
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
|
||||
|
||||
settings.COMPRESS_URL = params['url'] = 'http://static.example.com/'
|
||||
filter = CssAbsoluteFilter(self.content)
|
||||
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
|
||||
output = ("p { background: url('%(url)simg/python.png') }"
|
||||
"p { filter: Alpha(src='%(url)simg/python.png') }") % params
|
||||
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
|
||||
|
||||
def test_css_absolute_filter(self):
|
||||
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
|
||||
imagefilename = os.path.join(settings.COMPRESS_ROOT, 'img/python.png')
|
||||
@@ -134,6 +152,7 @@ class CssAbsolutizingTestCase(TestCase):
|
||||
"p { filter: Alpha(src='%(url)simg/python.png?%(hash)s') }") % params
|
||||
filter = CssAbsoluteFilter(self.content)
|
||||
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
|
||||
|
||||
settings.COMPRESS_URL = params['url'] = 'http://static.example.com/'
|
||||
filter = CssAbsoluteFilter(self.content)
|
||||
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
|
||||
@@ -153,6 +172,7 @@ class CssAbsolutizingTestCase(TestCase):
|
||||
output = "p { background: url('%(url)simg/python.png?%(hash)s#foo') }" % params
|
||||
filter = CssAbsoluteFilter(content)
|
||||
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
|
||||
|
||||
settings.COMPRESS_URL = params['url'] = 'http://media.example.com/'
|
||||
filter = CssAbsoluteFilter(content)
|
||||
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
|
||||
@@ -164,6 +184,7 @@ class CssAbsolutizingTestCase(TestCase):
|
||||
content = "p { background: url('#foo') }"
|
||||
filter = CssAbsoluteFilter(content)
|
||||
self.assertEqual(content, filter.input(filename=filename, basename='css/url/test.css'))
|
||||
|
||||
settings.COMPRESS_URL = 'http://media.example.com/'
|
||||
filter = CssAbsoluteFilter(content)
|
||||
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
|
||||
@@ -181,6 +202,7 @@ class CssAbsolutizingTestCase(TestCase):
|
||||
output = "p { background: url('%(url)simg/python.png?foo&%(hash)s') }" % params
|
||||
filter = CssAbsoluteFilter(content)
|
||||
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
|
||||
|
||||
settings.COMPRESS_URL = params['url'] = 'http://media.example.com/'
|
||||
filter = CssAbsoluteFilter(content)
|
||||
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
|
||||
@@ -198,6 +220,7 @@ class CssAbsolutizingTestCase(TestCase):
|
||||
"p { filter: Alpha(src='%(url)simg/python.png?%(hash)s') }") % params
|
||||
filter = CssAbsoluteFilter(self.content)
|
||||
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
|
||||
|
||||
settings.COMPRESS_URL = params['url'] = 'https://static.example.com/'
|
||||
filter = CssAbsoluteFilter(self.content)
|
||||
filename = os.path.join(settings.COMPRESS_ROOT, 'css/url/test.css')
|
||||
@@ -216,6 +239,7 @@ class CssAbsolutizingTestCase(TestCase):
|
||||
"p { filter: Alpha(src='%(url)simg/python.png?%(hash)s') }") % params
|
||||
filter = CssAbsoluteFilter(self.content)
|
||||
self.assertEqual(output, filter.input(filename=filename, basename='css/url/test.css'))
|
||||
|
||||
settings.COMPRESS_URL = params['url'] = 'https://static.example.com/'
|
||||
filter = CssAbsoluteFilter(self.content)
|
||||
output = ("p { background: url('%(url)simg/python.png?%(hash)s') }"
|
||||
@@ -256,14 +280,6 @@ class CssAbsolutizingTestCaseWithHash(CssAbsolutizingTestCase):
|
||||
hashing_method = 'content'
|
||||
hashing_func = staticmethod(get_hashed_content)
|
||||
|
||||
def setUp(self):
|
||||
super(CssAbsolutizingTestCaseWithHash, self).setUp()
|
||||
self.css = """
|
||||
<link rel="stylesheet" href="/static/css/url/url1.css" type="text/css" charset="utf-8">
|
||||
<link rel="stylesheet" href="/static/css/url/2/url2.css" type="text/css" charset="utf-8">
|
||||
"""
|
||||
self.css_node = CssCompressor(self.css)
|
||||
|
||||
|
||||
class CssDataUriTestCase(TestCase):
|
||||
def setUp(self):
|
||||
|
||||
@@ -81,10 +81,11 @@ Backend settings
|
||||
|
||||
.. attribute:: COMPRESS_CSS_HASHING_METHOD
|
||||
|
||||
The method to use when calculating the hash to append to
|
||||
processed URLs. Either ``'mtime'`` (default) or ``'content'``.
|
||||
Use the latter in case you're using multiple server to serve your
|
||||
static files.
|
||||
The method to use when calculating the suffix to append to URLs in
|
||||
your processed CSS files. Either ``None``, ``'mtime'`` (default) or
|
||||
``'content'``. Use the ``None`` if you want to completely disable that
|
||||
feature, and the ``'content'`` in case you're using multiple servers
|
||||
to serve your content.
|
||||
|
||||
- ``compressor.filters.csstidy.CSSTidyFilter``
|
||||
|
||||
|
||||
Reference in New Issue
Block a user