added two more unittests for inheritance
authorArmin Ronacher <armin.ronacher@active-4.com>
Fri, 23 May 2008 21:43:45 +0000 (23:43 +0200)
committerArmin Ronacher <armin.ronacher@active-4.com>
Fri, 23 May 2008 21:43:45 +0000 (23:43 +0200)
--HG--
branch : trunk

tests/test_inheritance.py
tests/test_lexer.py

index ee8296ab0046c3f9734b3bce2b50fba452955fd2..8884b9f7ca997cfe0add3fd3ec76ae6c2aef3a96 100644 (file)
@@ -107,3 +107,27 @@ def test_preserve_blocks():
     }))
     tmpl = env.get_template('b')
     assert tmpl.render() == 'BA'
+
+
+def test_dynamic_inheritance():
+    env = Environment(loader=DictLoader({
+        'master1': 'MASTER1{% block x %}{% endblock %}',
+        'master2': 'MASTER2{% block x %}{% endblock %}',
+        'child': '{% extends master %}{% block x %}CHILD{% endblock %}'
+    }))
+    tmpl = env.get_template('child')
+    for m in range(1, 3):
+        assert tmpl.render(master='master%d' % m) == 'MASTER%dCHILD' % m
+
+
+def test_multi_inheritance():
+    env = Environment(loader=DictLoader({
+        'master1': 'MASTER1{% block x %}{% endblock %}',
+        'master2': 'MASTER2{% block x %}{% endblock %}',
+        'child': '''{% if master %}{% extends master %}{% else %}{% extends
+                    'master1' %}{% endif %}{% block x %}CHILD{% endblock %}'''
+    }))
+    tmpl = env.get_template('child')
+    assert tmpl.render(master='master2') == 'MASTER2CHILD'
+    assert tmpl.render(master='master1') == 'MASTER1CHILD'
+    assert tmpl.render() == 'MASTER1CHILD'
index a6717e959ed5663ea785d90e0074a58a789a9c24..cb1e2dc16c6a2a869af7717df44e689a3efd5bf0 100644 (file)
@@ -58,3 +58,12 @@ def test_operators(env):
         stream = env.lexer.tokenize('{{ %s }}' % test)
         stream.next()
         assert stream.current.type == expect
+
+
+def test_normalizing():
+    from jinja2 import Environment
+    for seq in '\r', '\r\n', '\n':
+        env = Environment(newline_sequence=seq)
+        tmpl = env.from_string('1\n2\r\n3\n4\n')
+        result = tmpl.render()
+        assert result.replace(seq, 'X') == '1X2X3X4'