summaryrefslogtreecommitdiff
path: root/jinja2
diff options
context:
space:
mode:
authorArmin Ronacher <armin.ronacher@active-4.com>2013-05-19 03:25:40 -0700
committerArmin Ronacher <armin.ronacher@active-4.com>2013-05-19 03:25:40 -0700
commit2609cb3a1c730254e9a8fcd4d01db5c172bf1102 (patch)
tree3cd934ba117e25c69833370a20f02f4c994b9ac1 /jinja2
parent8dc9d4d6cb6bbfd3bee9d32cc25fb294dc60cd78 (diff)
parentdd7fa4aeaa5be49044c2f932c47e0daba5318666 (diff)
downloadjinja2-2609cb3a1c730254e9a8fcd4d01db5c172bf1102.tar.gz
Merge pull request #138 from gazpachoking/default_fix
Prevent default filter from throwing UndefinedError
Diffstat (limited to 'jinja2')
-rw-r--r--jinja2/filters.py2
-rw-r--r--jinja2/testsuite/api.py1
2 files changed, 2 insertions, 1 deletions
diff --git a/jinja2/filters.py b/jinja2/filters.py
index c1dee42..9dd693d 100644
--- a/jinja2/filters.py
+++ b/jinja2/filters.py
@@ -278,7 +278,7 @@ def do_default(value, default_value=u'', boolean=False):
{{ ''|default('the string was empty', true) }}
"""
- if (boolean and not value) or isinstance(value, Undefined):
+ if isinstance(value, Undefined) or (boolean and not value):
return default_value
return value
diff --git a/jinja2/testsuite/api.py b/jinja2/testsuite/api.py
index 4f6a1d0..f6bca48 100644
--- a/jinja2/testsuite/api.py
+++ b/jinja2/testsuite/api.py
@@ -229,6 +229,7 @@ class UndefinedTestCase(JinjaTestCase):
self.assert_equal(env.from_string('{{ missing is not defined }}').render(), 'True')
self.assert_raises(UndefinedError, env.from_string('{{ foo.missing }}').render, foo=42)
self.assert_raises(UndefinedError, env.from_string('{{ not missing }}').render)
+ self.assert_equal(env.from_string('{{ missing|default("default", true) }}').render(), 'default')
def test_indexing_gives_undefined(self):
t = Template("{{ var[42].foo }}")