diff --git a/CHANGES.txt b/CHANGES.txt index 8da65742663302ff1787b62512f180d8866d3fd5..4762b2ec4f5d7af3dd5930670de11e8853be6701 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -13,6 +13,9 @@ Templates --------- * Changed retrieval of templates for config files that alter EXP_ID Now tries config file name before using EXP_ID as template name +* Disabled evaluation of standard Jinja blocks ({% ... %}) and comments + ({# ... #}). This allows handling templates with standard Jinja code and shell + scripts using array length expansion (${#ARRAY}) Release 0.4.2 ============= diff --git a/mkexp b/mkexp index cc781b6cc08440fff9eb1d4dc2b639a363597846..b7f4bdb07814e88848f78c3713e79e47cb13df7b 100755 --- a/mkexp +++ b/mkexp @@ -297,6 +297,8 @@ template_env = Environment( variable_end_string = '}', line_statement_prefix = '#%', line_comment_prefix = '#%#', + block_start_string = '{%DiSaBlEdAnDuNlIkElY', + comment_start_string = '{#DiSaBlEdAnDuNlIkElY', extensions=['jinja2.ext.do'] ) diff --git a/test.py b/test.py index 3459f5882b0a1a0090e231a1d5ec614f29abf41a..f9eb11b62f2d4925cd203e50398cc2ba7350405b 100644 --- a/test.py +++ b/test.py @@ -407,6 +407,24 @@ class ContentTestCase(MkexpTestCase): result = align(result) self.assertMultiLineEqual(expected, result) +class JinjaTemplateTestCase(MkexpSimpleTestCase): + + def test_ignore_blocks(self): + self.run_test(""" + {% set answer = 42 %} + """, """ + {% set answer = 42 %} + """) + + def test_ignore_comments(self): + self.run_test(""" + {# no comment #} + ${#ARRAY} + """, """ + {# no comment #} + ${#ARRAY} + """) + class DefaultEnvironmentTestCase(MkexpSimpleTestCase): def test_basic(self):