blob: f0544bb2a8bd836152d1681017f699a5d1f69553 [file] [log] [blame]
Armin Ronacher44fb2e12007-04-29 09:45:00 +02001# -*- coding: utf-8 -*-
2"""
Armin Ronacherf41d1392008-04-18 16:41:52 +02003 unit test for the undefined types
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Armin Ronacher44fb2e12007-04-29 09:45:00 +02005
Armin Ronacherf41d1392008-04-18 16:41:52 +02006 :copyright: 2008 by Armin Ronacher.
Armin Ronacher44fb2e12007-04-29 09:45:00 +02007 :license: BSD, see LICENSE for more details.
8"""
9
Armin Ronacher44fb2e12007-04-29 09:45:00 +020010
Armin Ronacherf41d1392008-04-18 16:41:52 +020011test_default_undefined = '''
12>>> from jinja2 import Environment, Undefined
13>>> env = Environment(undefined=Undefined)
14>>> env.from_string('{{ missing }}').render()
15u''
16>>> env.from_string('{{ missing.attribute }}').render()
17Traceback (most recent call last):
18 ...
19UndefinedError: 'missing' is undefined
20>>> env.from_string('{{ missing|list }}').render()
21u'[]'
22>>> env.from_string('{{ missing is not defined }}').render()
23u'True'
24>>> env.from_string('{{ foo.missing }}').render(foo=42)
25u''
26>>> env.from_string('{{ not missing }}').render()
27u'True'
28'''
Armin Ronacher44fb2e12007-04-29 09:45:00 +020029
Armin Ronacherf41d1392008-04-18 16:41:52 +020030test_debug_undefined = '''
31>>> from jinja2 import Environment, DebugUndefined
32>>> env = Environment(undefined=DebugUndefined)
33>>> env.from_string('{{ missing }}').render()
34u'{{ missing }}'
35>>> env.from_string('{{ missing.attribute }}').render()
36Traceback (most recent call last):
37 ...
38UndefinedError: 'missing' is undefined
39>>> env.from_string('{{ missing|list }}').render()
40u'[]'
41>>> env.from_string('{{ missing is not defined }}').render()
42u'True'
43>>> env.from_string('{{ foo.missing }}').render(foo=42)
44u"{{ no such element: int['missing'] }}"
45>>> env.from_string('{{ not missing }}').render()
46u'True'
47'''
Armin Ronacher44fb2e12007-04-29 09:45:00 +020048
Armin Ronacherf41d1392008-04-18 16:41:52 +020049test_strict_undefined = '''
50>>> from jinja2 import Environment, StrictUndefined
51>>> env = Environment(undefined=StrictUndefined)
52>>> env.from_string('{{ missing }}').render()
53Traceback (most recent call last):
54 ...
55UndefinedError: 'missing' is undefined
56>>> env.from_string('{{ missing.attribute }}').render()
57Traceback (most recent call last):
58 ...
59UndefinedError: 'missing' is undefined
60>>> env.from_string('{{ missing|list }}').render()
61Traceback (most recent call last):
62 ...
63UndefinedError: 'missing' is undefined
64>>> env.from_string('{{ missing is not defined }}').render()
65u'True'
66>>> env.from_string('{{ foo.missing }}').render(foo=42)
67Traceback (most recent call last):
68 ...
69UndefinedError: 'int' object has no attribute 'missing'
70>>> env.from_string('{{ not missing }}').render()
71Traceback (most recent call last):
72 ...
73UndefinedError: 'missing' is undefined
74'''