fix cached precompiler for unicode input
This commit is contained in:
@@ -136,7 +136,7 @@ def get_hashed_content(filename, length=12):
|
||||
|
||||
|
||||
def get_precompiler_cachekey(command, contents):
|
||||
return hashlib.sha1('precompiler.%s.%s' % (command, contents)).hexdigest()
|
||||
return hashlib.sha1(smart_bytes('precompiler.%s.%s' % (command, contents))).hexdigest()
|
||||
|
||||
|
||||
def cache_get(key):
|
||||
|
@@ -233,4 +233,4 @@ class CachedCompilerFilter(CompilerFilter):
|
||||
return super(CachedCompilerFilter, self).input(**kwargs)
|
||||
|
||||
def get_cache_key(self):
|
||||
return get_precompiler_cachekey(self.command, self.content.encode('utf8'))
|
||||
return get_precompiler_cachekey(self.command, self.content)
|
||||
|
@@ -14,7 +14,7 @@ from django.test.utils import override_settings
|
||||
|
||||
from compressor import cache as cachemod
|
||||
from compressor.base import SOURCE_FILE, SOURCE_HUNK
|
||||
from compressor.cache import get_cachekey
|
||||
from compressor.cache import get_cachekey, get_precompiler_cachekey
|
||||
from compressor.conf import settings
|
||||
from compressor.css import CssCompressor
|
||||
from compressor.exceptions import FilterDoesNotExist, FilterError
|
||||
@@ -331,3 +331,9 @@ class CacheTestCase(SimpleTestCase):
|
||||
@override_settings(COMPRESS_CACHE_KEY_FUNCTION='invalid.module')
|
||||
def test_get_cachekey_invalid_mod(self):
|
||||
self.assertRaises(ImportError, lambda: get_cachekey("foo"))
|
||||
|
||||
def test_get_precompiler_cachekey(self):
|
||||
try:
|
||||
get_precompiler_cachekey("asdf", "asdf")
|
||||
except TypeError:
|
||||
self.fail("get_precompiler_cachekey raised TypeError unexpectedly")
|
||||
|
Reference in New Issue
Block a user