Added a testcase for #363. This bug was fixed along the way.
--HG--
branch : trunk
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 @@
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)