From 894ddb1b36d3fe3904db794fad4a4392f94804c4 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Fri, 6 Jan 2017 21:48:53 +0100 Subject: [PATCH] Added a test for macro scoping in loops --- tests/test_regression.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/test_regression.py b/tests/test_regression.py index adc651e9..4deaebe9 100644 --- a/tests/test_regression.py +++ b/tests/test_regression.py @@ -335,3 +335,20 @@ class TestBug(object): template = "{% macro m() %}{% endmacro %}" template += "{% autoescape true %}{{ m() }}{% endautoescape %}" assert env.from_string(template).render() + + def test_macro_scoping(self, env): + tmpl = env.from_string(''' + {% set n=[1,2,3,4,5] %} + {% for n in [[1,2,3], [3,4,5], [5,6,7]] %} + + {% macro x(l) %} + {{ l.pop() }} + {% if l %}{{ x(l) }}{% endif %} + {% endmacro %} + + {{ x(n) }} + + {% endfor %} + ''') + assert list(map(int, tmpl.render().split())) == \ + [3, 2, 1, 5, 4, 3, 7, 6, 5] -- 2.47.2