From 7fd4ad638cd14cdc20bd6b19ccd8e0ea111b3aef Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Sat, 6 Feb 2010 19:01:58 +0100 Subject: [PATCH] Added a testcase for #363. This bug was fixed along the way. --HG-- branch : trunk --- Makefile | 3 ++- tests/test_old_bugs.py | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6cd734a..85ed64d 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,8 @@ test: rm -rf py3k mkdir py3k cp -R jinja2 py3k - 2to3 jinja2 > py3k/convert.patch + cp -R tests py3k + 2to3 jinja2 tests > py3k/convert.patch cd py3k; patch -p0 < convert.patch .PHONY: test diff --git a/tests/test_old_bugs.py b/tests/test_old_bugs.py index 98db1b3..9ca8344 100644 --- a/tests/test_old_bugs.py +++ b/tests/test_old_bugs.py @@ -140,3 +140,33 @@ def test_empty_if_condition_fails(): assert_raises(TemplateSyntaxError, Template, '{% if %}....{% endif %}') assert_raises(TemplateSyntaxError, Template, '{% if foo %}...{% elif %}...{% endif %}') assert_raises(TemplateSyntaxError, Template, '{% for x in %}..{% endfor %}') + + +def test_recursive_loop_bug(): + tpl1 = Template(""" + {% for p in foo recursive%} + {{p.bar}} + {% for f in p.fields recursive%} + {{f.baz}} + {{p.bar}} + {% if f.rec %} + {{ loop(f.sub) }} + {% endif %} + {% endfor %} + {% endfor %} + """) + tpl1.render(ctx) + + tpl2 = Template(""" + {% for p in foo%} + {{p.bar}} + {% for f in p.fields recursive%} + {{f.baz}} + {{p.bar}} + {% if f.rec %} + {{ loop(f.sub) }} + {% endif %} + {% endfor %} + {% endfor %} + """) + tpl2.render(ctx) -- 2.26.2