diff options
author | Steve Norum <stevenorum@gmail.com> | 2019-01-12 11:39:49 -0500 |
---|---|---|
committer | Steve Norum <stevenorum@gmail.com> | 2019-01-12 11:39:49 -0500 |
commit | eca6fbfd6f4f60d3503dba7253cfb941d0751365 (patch) | |
tree | 1045e9d058ae1e9bf863e51275197ea55f57bbb0 | |
parent | 9fe9520f2daa1df6079b188adba758d6e03d6af2 (diff) | |
download | jinja2-eca6fbfd6f4f60d3503dba7253cfb941d0751365.tar.gz |
Fixing compiler handling of parens around boolean comparisons.
-rw-r--r-- | jinja2/compiler.py | 2 | ||||
-rw-r--r-- | tests/test_lexnparse.py | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/jinja2/compiler.py b/jinja2/compiler.py index 5135a77..c0eb240 100644 --- a/jinja2/compiler.py +++ b/jinja2/compiler.py @@ -1529,9 +1529,11 @@ class CodeGenerator(NodeVisitor): @optimizeconst def visit_Compare(self, node, frame): + self.write('(') self.visit(node.expr, frame) for op in node.ops: self.visit(op, frame) + self.write(')') def visit_Operand(self, node, frame): self.write(' %s ' % operators[node.op]) diff --git a/tests/test_lexnparse.py b/tests/test_lexnparse.py index a61c146..5c4c273 100644 --- a/tests/test_lexnparse.py +++ b/tests/test_lexnparse.py @@ -332,6 +332,12 @@ class TestSyntax(object): '{{ 2 == 2 }}|{{ 1 <= 1 }}') assert tmpl.render() == 'True|True|True|True|True' + def test_compare_parens(self, env): + tmpl = env.from_string( + "{{ i*(j<5) }}" + ) + assert tmpl.render(i=2, j=3) == '2' + def test_inop(self, env): tmpl = env.from_string('{{ 1 in [1, 2, 3] }}|{{ 1 not in [1, 2, 3] }}') assert tmpl.render() == 'True|False' |