Use MD5 instead of SHA1 to reduce the computational impact.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,7 +1,7 @@
|
|||||||
build
|
build
|
||||||
compressor/tests/media/CACHE
|
compressor/tests/media/CACHE
|
||||||
compressor/tests/media/custom
|
compressor/tests/media/custom
|
||||||
compressor/tests/media/js/3f33b9146e12.js
|
compressor/tests/media/js/066cd253eada.js
|
||||||
dist
|
dist
|
||||||
MANIFEST
|
MANIFEST
|
||||||
*.pyc
|
*.pyc
|
||||||
|
|||||||
@@ -3,13 +3,13 @@ import socket
|
|||||||
|
|
||||||
from django.core.cache import get_cache
|
from django.core.cache import get_cache
|
||||||
from django.utils.encoding import smart_str
|
from django.utils.encoding import smart_str
|
||||||
from django.utils.hashcompat import sha_constructor
|
from django.utils.hashcompat import md5_constructor
|
||||||
|
|
||||||
from compressor.conf import settings
|
from compressor.conf import settings
|
||||||
|
|
||||||
|
|
||||||
def get_hexdigest(plaintext, length=None):
|
def get_hexdigest(plaintext, length=None):
|
||||||
digest = sha_constructor(smart_str(plaintext)).hexdigest()
|
digest = md5_constructor(smart_str(plaintext)).hexdigest()
|
||||||
if length:
|
if length:
|
||||||
return digest[:length]
|
return digest[:length]
|
||||||
return digest
|
return digest
|
||||||
|
|||||||
@@ -91,10 +91,10 @@ class CompressorTestCase(TestCase):
|
|||||||
self.assert_(is_cachekey.match(self.css_node.cachekey), "cachekey is returning something that doesn't look like r'django_compressor\.%s\.\w{12}'" % host_name)
|
self.assert_(is_cachekey.match(self.css_node.cachekey), "cachekey is returning something that doesn't look like r'django_compressor\.%s\.\w{12}'" % host_name)
|
||||||
|
|
||||||
def test_css_hash(self):
|
def test_css_hash(self):
|
||||||
self.assertEqual('666f3aa8eacd', get_hexdigest(self.css, 12))
|
self.assertEqual('c618e6846d04', get_hexdigest(self.css, 12))
|
||||||
|
|
||||||
def test_css_return_if_on(self):
|
def test_css_return_if_on(self):
|
||||||
output = u'<link rel="stylesheet" href="/media/CACHE/css/f7c661b7a124.css" type="text/css">'
|
output = u'<link rel="stylesheet" href="/media/CACHE/css/e41ba2cc6982.css" type="text/css">'
|
||||||
self.assertEqual(output, self.css_node.output().strip())
|
self.assertEqual(output, self.css_node.output().strip())
|
||||||
|
|
||||||
def test_js_split(self):
|
def test_js_split(self):
|
||||||
@@ -129,20 +129,20 @@ class CompressorTestCase(TestCase):
|
|||||||
settings.COMPRESS_PRECOMPILERS = precompilers
|
settings.COMPRESS_PRECOMPILERS = precompilers
|
||||||
|
|
||||||
def test_js_return_if_on(self):
|
def test_js_return_if_on(self):
|
||||||
output = u'<script type="text/javascript" src="/media/CACHE/js/3f33b9146e12.js" charset="utf-8"></script>'
|
output = u'<script type="text/javascript" src="/media/CACHE/js/066cd253eada.js" charset="utf-8"></script>'
|
||||||
self.assertEqual(output, self.js_node.output())
|
self.assertEqual(output, self.js_node.output())
|
||||||
|
|
||||||
def test_custom_output_dir(self):
|
def test_custom_output_dir(self):
|
||||||
try:
|
try:
|
||||||
old_output_dir = settings.COMPRESS_OUTPUT_DIR
|
old_output_dir = settings.COMPRESS_OUTPUT_DIR
|
||||||
settings.COMPRESS_OUTPUT_DIR = 'custom'
|
settings.COMPRESS_OUTPUT_DIR = 'custom'
|
||||||
output = u'<script type="text/javascript" src="/media/custom/js/3f33b9146e12.js" charset="utf-8"></script>'
|
output = u'<script type="text/javascript" src="/media/custom/js/066cd253eada.js" charset="utf-8"></script>'
|
||||||
self.assertEqual(output, JsCompressor(self.js).output())
|
self.assertEqual(output, JsCompressor(self.js).output())
|
||||||
settings.COMPRESS_OUTPUT_DIR = ''
|
settings.COMPRESS_OUTPUT_DIR = ''
|
||||||
output = u'<script type="text/javascript" src="/media/js/3f33b9146e12.js" charset="utf-8"></script>'
|
output = u'<script type="text/javascript" src="/media/js/066cd253eada.js" charset="utf-8"></script>'
|
||||||
self.assertEqual(output, JsCompressor(self.js).output())
|
self.assertEqual(output, JsCompressor(self.js).output())
|
||||||
settings.COMPRESS_OUTPUT_DIR = '/custom/nested/'
|
settings.COMPRESS_OUTPUT_DIR = '/custom/nested/'
|
||||||
output = u'<script type="text/javascript" src="/media/custom/nested/js/3f33b9146e12.js" charset="utf-8"></script>'
|
output = u'<script type="text/javascript" src="/media/custom/nested/js/066cd253eada.js" charset="utf-8"></script>'
|
||||||
self.assertEqual(output, JsCompressor(self.js).output())
|
self.assertEqual(output, JsCompressor(self.js).output())
|
||||||
finally:
|
finally:
|
||||||
settings.COMPRESS_OUTPUT_DIR = old_output_dir
|
settings.COMPRESS_OUTPUT_DIR = old_output_dir
|
||||||
@@ -340,7 +340,7 @@ class TemplatetagTestCase(TestCase):
|
|||||||
{% endcompress %}
|
{% endcompress %}
|
||||||
"""
|
"""
|
||||||
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
||||||
out = u'<link rel="stylesheet" href="/media/CACHE/css/f7c661b7a124.css" type="text/css">'
|
out = u'<link rel="stylesheet" href="/media/CACHE/css/e41ba2cc6982.css" type="text/css">'
|
||||||
self.assertEqual(out, render(template, context))
|
self.assertEqual(out, render(template, context))
|
||||||
|
|
||||||
def test_nonascii_css_tag(self):
|
def test_nonascii_css_tag(self):
|
||||||
@@ -350,7 +350,7 @@ class TemplatetagTestCase(TestCase):
|
|||||||
{% endcompress %}
|
{% endcompress %}
|
||||||
"""
|
"""
|
||||||
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
||||||
out = '<link rel="stylesheet" href="/media/CACHE/css/1c1c0855907b.css" type="text/css">'
|
out = '<link rel="stylesheet" href="/media/CACHE/css/799f6defe43c.css" type="text/css">'
|
||||||
self.assertEqual(out, render(template, context))
|
self.assertEqual(out, render(template, context))
|
||||||
|
|
||||||
def test_js_tag(self):
|
def test_js_tag(self):
|
||||||
@@ -360,7 +360,7 @@ class TemplatetagTestCase(TestCase):
|
|||||||
{% endcompress %}
|
{% endcompress %}
|
||||||
"""
|
"""
|
||||||
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
||||||
out = u'<script type="text/javascript" src="/media/CACHE/js/3f33b9146e12.js" charset="utf-8"></script>'
|
out = u'<script type="text/javascript" src="/media/CACHE/js/066cd253eada.js" charset="utf-8"></script>'
|
||||||
self.assertEqual(out, render(template, context))
|
self.assertEqual(out, render(template, context))
|
||||||
|
|
||||||
def test_nonascii_js_tag(self):
|
def test_nonascii_js_tag(self):
|
||||||
@@ -370,7 +370,7 @@ class TemplatetagTestCase(TestCase):
|
|||||||
{% endcompress %}
|
{% endcompress %}
|
||||||
"""
|
"""
|
||||||
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
||||||
out = u'<script type="text/javascript" src="/media/CACHE/js/5d5c0e1cb25f.js" charset="utf-8"></script>'
|
out = u'<script type="text/javascript" src="/media/CACHE/js/e214fe629b28.js" charset="utf-8"></script>'
|
||||||
self.assertEqual(out, render(template, context))
|
self.assertEqual(out, render(template, context))
|
||||||
|
|
||||||
def test_nonascii_latin1_js_tag(self):
|
def test_nonascii_latin1_js_tag(self):
|
||||||
@@ -380,7 +380,7 @@ class TemplatetagTestCase(TestCase):
|
|||||||
{% endcompress %}
|
{% endcompress %}
|
||||||
"""
|
"""
|
||||||
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
||||||
out = u'<script type="text/javascript" src="/media/CACHE/js/40a8e9ffb476.js" charset="utf-8"></script>'
|
out = u'<script type="text/javascript" src="/media/CACHE/js/f1be5a5de243.js" charset="utf-8"></script>'
|
||||||
self.assertEqual(out, render(template, context))
|
self.assertEqual(out, render(template, context))
|
||||||
|
|
||||||
def test_compress_tag_with_illegal_arguments(self):
|
def test_compress_tag_with_illegal_arguments(self):
|
||||||
@@ -419,7 +419,7 @@ class StorageTestCase(TestCase):
|
|||||||
{% endcompress %}
|
{% endcompress %}
|
||||||
"""
|
"""
|
||||||
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
context = { 'MEDIA_URL': settings.COMPRESS_URL }
|
||||||
out = u'<link rel="stylesheet" href="/media/CACHE/css/5b231a62e9a6.css.gz" type="text/css">'
|
out = u'<link rel="stylesheet" href="/media/CACHE/css/1d4424458f88.css.gz" type="text/css">'
|
||||||
self.assertEqual(out, render(template, context))
|
self.assertEqual(out, render(template, context))
|
||||||
|
|
||||||
|
|
||||||
@@ -452,8 +452,8 @@ class OfflineGenerationTestCase(TestCase):
|
|||||||
count, result = CompressCommand().compress()
|
count, result = CompressCommand().compress()
|
||||||
self.assertEqual(2, count)
|
self.assertEqual(2, count)
|
||||||
self.assertEqual([
|
self.assertEqual([
|
||||||
u'<link rel="stylesheet" href="/media/CACHE/css/a55e1cf95000.css" type="text/css">\n',
|
u'<link rel="stylesheet" href="/media/CACHE/css/cd579b7deb7d.css" type="text/css">\n',
|
||||||
u'<script type="text/javascript" src="/media/CACHE/js/bf53fa5b13e2.js" charset="utf-8"></script>',
|
u'<script type="text/javascript" src="/media/CACHE/js/0a2bb9a287c0.js" charset="utf-8"></script>',
|
||||||
], result)
|
], result)
|
||||||
|
|
||||||
def test_offline_with_context(self):
|
def test_offline_with_context(self):
|
||||||
@@ -464,8 +464,8 @@ class OfflineGenerationTestCase(TestCase):
|
|||||||
count, result = CompressCommand().compress()
|
count, result = CompressCommand().compress()
|
||||||
self.assertEqual(2, count)
|
self.assertEqual(2, count)
|
||||||
self.assertEqual([
|
self.assertEqual([
|
||||||
u'<link rel="stylesheet" href="/media/CACHE/css/8a2405e029de.css" type="text/css">\n',
|
u'<link rel="stylesheet" href="/media/CACHE/css/ee62fbfd116a.css" type="text/css">\n',
|
||||||
u'<script type="text/javascript" src="/media/CACHE/js/bf53fa5b13e2.js" charset="utf-8"></script>',
|
u'<script type="text/javascript" src="/media/CACHE/js/0a2bb9a287c0.js" charset="utf-8"></script>',
|
||||||
], result)
|
], result)
|
||||||
settings.COMPRESS_OFFLINE_CONTEXT = self._old_offline_context
|
settings.COMPRESS_OFFLINE_CONTEXT = self._old_offline_context
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user