Ejemplo n.º 1
0
 def test_correct_prefix_loader_name(self):
     env = Environment(loader=PrefixLoader({
         'foo':  DictLoader({})
     }))
     try:
         env.get_template('foo/bar.html')
     except TemplateNotFound, e:
         assert e.name == 'foo/bar.html'
Ejemplo n.º 2
0
 def test_preserve_blocks(self):
     env = Environment(loader=DictLoader({
         'a': '{% if false %}{% block x %}A{% endblock %}{% endif %}{{ self.x() }}',
         'b': '{% extends "a" %}{% block x %}B{{ super() }}{% endblock %}'
     }))
     tmpl = env.get_template('b')
     tmpl.assert_render() == 'BA'
Ejemplo n.º 3
0
 def test_dynamic_inheritance(self):
     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):
         tmpl.assert_render(master='master%d' % m) == 'MASTER%dCHILD' % m
Ejemplo n.º 4
0
 def test_multi_inheritance(self):
     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')
     tmpl.assert_render(master='master2') == 'MASTER2CHILD'
     tmpl.assert_render(master='master1') == 'MASTER1CHILD'
     tmpl.assert_render() == 'MASTER1CHILD'
Ejemplo n.º 5
0
 def test_super(self):
     env = Environment(loader=DictLoader({
         'a': '{% block intro %}INTRO{% endblock %}|'
              'BEFORE|{% block data %}INNER{% endblock %}|AFTER',
         'b': '{% extends "a" %}{% block data %}({{ '
              'super() }}){% endblock %}',
         'c': '{% extends "b" %}{% block intro %}--{{ '
              'super() }}--{% endblock %}\n{% block data '
              '%}[{{ super() }}]{% endblock %}'
     }))
     tmpl = env.get_template('c')
     tmpl.assert_render() == '--INTRO--|BEFORE|[(INNER)]|AFTER'
Ejemplo n.º 6
0
 def test_scoped_block_after_inheritance(self):
     env = Environment(loader=DictLoader({
         'layout.html': '''
         {% block useless %}{% endblock %}
         ''',
         'index.html': '''
         {%- extends 'layout.html' %}
         {% from 'helpers.html' import foo with context %}
         {% block useless %}
             {% for x in [1, 2, 3] %}
                 {% block testing scoped %}
                     {{ foo(x) }}
                 {% endblock %}
             {% endfor %}
         {% endblock %}
         ''',
         'helpers.html': '''
         {% macro foo(x) %}{{ the_foo + x }}{% endmacro %}
         '''
     }))
     rv = env.get_template('index.html').assert_render(the_foo=42).split()
     assert rv == ['43', '44', '45']
Ejemplo n.º 7
0
 def test_context_include_with_overrides(self):
     env = Environment(loader=DictLoader(dict(
         main="{% for item in [1, 2, 3] %}{% include 'item' %}{% endfor %}",
         item="{{ item }}"
     )))
     assert env.get_template("main").assert_render() == "123"