diff --git a/compressor/filters/base.py b/compressor/filters/base.py index ea1dd4c..d11a844 100644 --- a/compressor/filters/base.py +++ b/compressor/filters/base.py @@ -6,6 +6,7 @@ import subprocess from django.core.exceptions import ImproperlyConfigured from django.core.files.temp import NamedTemporaryFile from django.utils.importlib import import_module +from django.utils.encoding import smart_unicode from django.utils import six from compressor.conf import settings @@ -183,4 +184,5 @@ class CompilerFilter(FilterBase): self.infile.close() if self.outfile is not None: self.outfile.close() - return filtered + + return smart_unicode(filtered) diff --git a/compressor/tests/test_filters.py b/compressor/tests/test_filters.py index 79c96d1..0da914d 100644 --- a/compressor/tests/test_filters.py +++ b/compressor/tests/test_filters.py @@ -79,6 +79,11 @@ class PrecompilerTestCase(TestCase): charset=settings.FILE_CHARSET, command=command) self.assertEqual("body { color:#990; }%s" % os.linesep, compiler.input()) + def test_precompiler_output_unicode(self): + command = '%s %s' % (sys.executable, self.test_precompiler) + compiler = CompilerFilter(content=self.content, filename=self.filename, command=command) + self.assertEqual(type(compiler.input()), unicode) + class CssMinTestCase(TestCase): def test_cssmin_filter(self): diff --git a/docs/settings.txt b/docs/settings.txt index c2d684c..a774e85 100644 --- a/docs/settings.txt +++ b/docs/settings.txt @@ -334,7 +334,7 @@ Caching settings .. attribute:: COMPRESS_CACHE_BACKEND - :Default: ``"default"`` or ``CACHE_BACKEND`` + :Default: ``CACHES["default"]`` or ``CACHE_BACKEND`` The backend to use for caching, in case you want to use a different cache backend for Django Compressor.