added a deprecation warning for a variable assignment, scope bug
[jinja2.git] / tests / test_old_bugs.py
index b004a29d06d5e0f5d4723d0e602d2daa7765940b..c4468f12e93bbedbb38dc73e139095ee87719dd5 100644 (file)
@@ -12,6 +12,7 @@ from jinja2 import Environment, DictLoader, TemplateSyntaxError
 
 env = Environment()
 
+from nose import SkipTest
 from nose.tools import assert_raises
 
 
@@ -56,7 +57,7 @@ def test_loop_call_loop():
 
     ''')
 
-    assert tmpl.render() == ''
+    assert tmpl.render().split() == map(unicode, range(1, 11)) * 5
 
 
 def test_weird_inline_comment():
@@ -69,3 +70,21 @@ def test_old_macro_loop_scoping_bug():
     tmpl = env.from_string('{% for i in (1, 2) %}{{ i }}{% endfor %}'
                            '{% macro i() %}3{% endmacro %}{{ i() }}')
     assert tmpl.render() == '123'
+
+
+def test_partial_conditional_assignments():
+    tmpl = env.from_string('{% if b %}{% set a = 42 %}{% endif %}{{ a }}')
+    assert tmpl.render(a=23) == '23'
+    assert tmpl.render(b=True) == '42'
+
+
+def test_local_macros_first():
+    raise SkipTest('Behavior will change in 2.3')
+    env = Environment(loader=DictLoader({
+        'layout.html': ('{% macro foo() %}LAYOUT{% endmacro %}'
+                        '{% block body %}{% endblock %}'),
+        'child.html': ('{% extends "layout.html" %}'
+                       '{% macro foo() %}CHILD{% endmacro %}'
+                       '{% block body %}{{ foo() }}{% endblock %}')
+    }))
+    assert env.get_template('child.html').render() == 'CHILD'