diff --git a/compressor/contrib/jinja2ext.py b/compressor/contrib/jinja2ext.py index a0ddbac..6ff6760 100644 --- a/compressor/contrib/jinja2ext.py +++ b/compressor/contrib/jinja2ext.py @@ -1,7 +1,9 @@ +from django.core.exceptions import ImproperlyConfigured + from jinja2 import nodes from jinja2.ext import Extension from jinja2.exceptions import TemplateSyntaxError -from django.core.exceptions import ImproperlyConfigured + from compressor.conf import settings from compressor.utils import get_class from compressor.templatetags.compress import OUTPUT_FILE @@ -28,8 +30,9 @@ class CompressorExtension(Extension): kindarg = nodes.Const(kindarg.name) args = [kindarg] if args[0].value not in self.compressors: - raise TemplateSyntaxError('compress kind may be one of: %s' - % (', '.join(self.compressors.keys())), lineno) + raise TemplateSyntaxError('compress kind may be one of: %s' % + (', '.join(self.compressors.keys())), + lineno) if parser.stream.skip_if('comma'): modearg = parser.parse_expression() # Allow mode to be defined as jinja2 name node @@ -76,10 +79,7 @@ class CompressorExtension(Extension): and return a tuple of cache key and output """ if settings.COMPRESS_ENABLED and not forced: - cache_key = get_templatetag_cachekey( - compressor, mode, kind) + cache_key = get_templatetag_cachekey(compressor, mode, kind) cache_content = cache_get(cache_key) return cache_key, cache_content return None, None - - diff --git a/docs/jinja2.txt b/docs/jinja2.txt index ebd4164..de9a17b 100644 --- a/docs/jinja2.txt +++ b/docs/jinja2.txt @@ -3,7 +3,6 @@ Jinja2 Support Django Compressor comes with support for Jinja2_ via an extension. - Plain Jinja2 ------------ diff --git a/tests/tests/jinja2ext.py b/tests/tests/jinja2ext.py index 2abd5a1..f3fe028 100644 --- a/tests/tests/jinja2ext.py +++ b/tests/tests/jinja2ext.py @@ -1,15 +1,14 @@ +from __future__ import with_statement + from django.test import TestCase + +import jinja2 + from compressor.conf import settings -from unittest2 import skipIf + from .base import css_tag -try: - import jinja2 -except ImportError: - jinja2 = None - - class TestJinja2CompressorExtension(TestCase): """ Test case for jinja2 extension. @@ -29,18 +28,16 @@ class TestJinja2CompressorExtension(TestCase): self.env = jinja2.Environment(extensions=[CompressorExtension]) def test_error_raised_if_no_arguments_given(self): - with self.assertRaises(jinja2.exceptions.TemplateSyntaxError): - self.env.from_string('{% compress %}Foobar{% endcompress %}') + self.assertRaises(jinja2.exceptions.TemplateSyntaxError, + self.env.from_string, '{% compress %}Foobar{% endcompress %}') def test_error_raised_if_wrong_kind_given(self): - with self.assertRaises(jinja2.exceptions.TemplateSyntaxError): - self.env.from_string('{% compress foo %}Foobar{% endcompress %}' - ).render() + self.assertRaises(jinja2.exceptions.TemplateSyntaxError, + self.env.from_string, '{% compress foo %}Foobar{% endcompress %}') def test_error_raised_if_wrong_mode_given(self): - with self.assertRaises(jinja2.exceptions.TemplateSyntaxError): - self.env.from_string('{% compress css foo %}Foobar{% endcompress %}' - ).render() + self.assertRaises(jinja2.exceptions.TemplateSyntaxError, + self.env.from_string, '{% compress css foo %}Foobar{% endcompress %}') def test_compress_is_disabled(self): org_COMPRESS_ENABLED = settings.COMPRESS_ENABLED @@ -58,7 +55,7 @@ class TestJinja2CompressorExtension(TestCase): def test_empty_tag(self): template = self.env.from_string(u"""{% compress js %}{% block js %} {% endblock %}{% endcompress %}""") - context = {'MEDIA_URL': settings.COMPRESS_URL } + context = {'MEDIA_URL': settings.COMPRESS_URL} self.assertEqual(u'', template.render(context)) def test_css_tag(self): @@ -66,8 +63,8 @@ class TestJinja2CompressorExtension(TestCase): - {%- endcompress %}""") - context = {'MEDIA_URL': settings.COMPRESS_URL } + {% endcompress %}""") + context = {'MEDIA_URL': settings.COMPRESS_URL} out = css_tag("/media/CACHE/css/e41ba2cc6982.css") self.assertEqual(out, template.render(context)) @@ -75,8 +72,8 @@ class TestJinja2CompressorExtension(TestCase): template = self.env.from_string(u"""{% compress css -%} - {%- endcompress %}""") - context = {'MEDIA_URL': settings.COMPRESS_URL } + {% endcompress %}""") + context = {'MEDIA_URL': settings.COMPRESS_URL} out = css_tag("/media/CACHE/css/799f6defe43c.css") self.assertEqual(out, template.render(context)) @@ -84,8 +81,8 @@ class TestJinja2CompressorExtension(TestCase): template = self.env.from_string(u"""{% compress js -%} - {%- endcompress %}""") - context = {'MEDIA_URL': settings.COMPRESS_URL } + {% endcompress %}""") + context = {'MEDIA_URL': settings.COMPRESS_URL} out = u'' self.assertEqual(out, template.render(context)) @@ -93,8 +90,8 @@ class TestJinja2CompressorExtension(TestCase): template = self.env.from_string(u"""{% compress js -%} - {%- endcompress %}""") - context = {'MEDIA_URL': settings.COMPRESS_URL } + {% endcompress %}""") + context = {'MEDIA_URL': settings.COMPRESS_URL} out = u'' self.assertEqual(out, template.render(context)) @@ -102,8 +99,8 @@ class TestJinja2CompressorExtension(TestCase): template = self.env.from_string(u"""{% compress js -%} - {%- endcompress %}""") - context = {'MEDIA_URL': settings.COMPRESS_URL } + {% endcompress %}""") + context = {'MEDIA_URL': settings.COMPRESS_URL} out = u'' self.assertEqual(out, template.render(context)) @@ -111,8 +108,8 @@ class TestJinja2CompressorExtension(TestCase): template = self.env.from_string(u"""{% compress css, inline -%} - {%- endcompress %}""") - context = {'MEDIA_URL': settings.COMPRESS_URL } + {% endcompress %}""") + context = {'MEDIA_URL': settings.COMPRESS_URL} out = '\n'.join([ '', @@ -123,11 +120,7 @@ class TestJinja2CompressorExtension(TestCase): template = self.env.from_string(u"""{% compress js, inline -%} - {%- endcompress %}""") - context = {'MEDIA_URL': settings.COMPRESS_URL } + {% endcompress %}""") + context = {'MEDIA_URL': settings.COMPRESS_URL} out = '' self.assertEqual(out, template.render(context)) - -TestJinja2CompressorExtension = skipIf(jinja2 is None, 'jinja2 not found')( - TestJinja2CompressorExtension) - diff --git a/tests/tox.ini b/tests/tox.ini index c88476f..9d7dd7e 100644 --- a/tests/tox.ini +++ b/tests/tox.ini @@ -30,6 +30,7 @@ deps = html5lib coverage mock + jinja2 django==1.2.5 [testenv:py26-1.2.X] @@ -40,6 +41,7 @@ deps = html5lib coverage mock + jinja2 django==1.2.5 [testenv:py27-1.2.X] @@ -50,6 +52,7 @@ deps = html5lib coverage mock + jinja2 django==1.2.5 @@ -61,6 +64,7 @@ deps = html5lib coverage mock + jinja2 django==1.3 [testenv:py26-1.3.X] @@ -71,6 +75,7 @@ deps = html5lib coverage mock + jinja2 django==1.3 [testenv:py27-1.3.X] @@ -81,4 +86,5 @@ deps = html5lib coverage mock + jinja2 django==1.3