blob: 52bbaecb1f2881be4d593ff7c7b163e676102c46 [file] [log] [blame]
# -*- coding: utf-8 -*-
"""
unit test for if conditions
~~~~~~~~~~~~~~~~~~~~~~~~~~~
:copyright: (c) 2009 by the Jinja Team.
:license: BSD, see LICENSE for more details.
"""
from jinja2 import Environment
env = Environment()
SIMPLE = '''{% if true %}...{% endif %}'''
ELIF = '''{% if false %}XXX{% elif true %}...{% else %}XXX{% endif %}'''
ELSE = '''{% if false %}XXX{% else %}...{% endif %}'''
EMPTY = '''[{% if true %}{% else %}{% endif %}]'''
def test_simple():
tmpl = env.from_string(SIMPLE)
assert tmpl.render() == '...'
def test_elif():
tmpl = env.from_string(ELIF)
assert tmpl.render() == '...'
def test_else():
tmpl = env.from_string(ELSE)
assert tmpl.render() == '...'
def test_empty():
tmpl = env.from_string(EMPTY)
assert tmpl.render() == '[]'
def test_complete():
tmpl = env.from_string('{% if a %}A{% elif b %}B{% elif c == d %}'
'C{% else %}D{% endif %}')
assert tmpl.render(a=0, b=False, c=42, d=42.0) == 'C'
def test_no_scope():
tmpl = env.from_string('{% if a %}{% set foo = 1 %}{% endif %}{{ foo }}')
assert tmpl.render(a=True) == '1'
tmpl = env.from_string('{% if true %}{% set foo = 1 %}{% endif %}{{ foo }}')
assert tmpl.render() == '1'