]> git.ipfire.org Git - thirdparty/jinja.git/commitdiff
Prevent default filter from throwing UndefinedError when boolean flag is used with... 138/head
authorChase Sterling <chase.sterling@gmail.com>
Thu, 5 Jul 2012 19:43:14 +0000 (15:43 -0400)
committerChase Sterling <chase.sterling@gmail.com>
Thu, 5 Jul 2012 19:43:14 +0000 (15:43 -0400)
jinja2/filters.py
jinja2/testsuite/api.py

index 8fef6eaa322b94f68e07a9c177b1cc4eea159eda..52a456b3e907777956b2185eaad4616ae5c6fcf9 100644 (file)
@@ -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
 
index c8f96347c99989363ca2c06de9524bbb56ae1adc..4c2e42c39bdc405e07cf7e61e5986b24039bc0db 100644 (file)
@@ -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 }}")