From: Chase Sterling Date: Thu, 5 Jul 2012 19:43:14 +0000 (-0400) Subject: Prevent default filter from throwing UndefinedError when boolean flag is used with... X-Git-Tag: 2.7~46^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd7fa4aeaa5be49044c2f932c47e0daba5318666;p=thirdparty%2Fjinja.git Prevent default filter from throwing UndefinedError when boolean flag is used with StrictUndefined. --- diff --git a/jinja2/filters.py b/jinja2/filters.py index 8fef6eaa..52a456b3 100644 --- a/jinja2/filters.py +++ b/jinja2/filters.py @@ -276,7 +276,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 c8f96347..4c2e42c3 100644 --- a/jinja2/testsuite/api.py +++ b/jinja2/testsuite/api.py @@ -214,6 +214,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 }}")