[formatter] use value of last alternative (#4492)
fixes {fieldname|''} evaluating to the value of 'keywords-default'
instead of an empty string
This commit is contained in:
@@ -182,9 +182,10 @@ class StringFormatter():
|
|||||||
if obj:
|
if obj:
|
||||||
break
|
break
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
obj = None
|
||||||
else:
|
else:
|
||||||
obj = self.default
|
if obj is None:
|
||||||
|
obj = self.default
|
||||||
return fmt(obj)
|
return fmt(obj)
|
||||||
return wrap
|
return wrap
|
||||||
|
|
||||||
|
|||||||
@@ -340,6 +340,8 @@ class TestFormatter(unittest.TestCase):
|
|||||||
self._run_test("{'foobar'[:3]}", value)
|
self._run_test("{'foobar'[:3]}", value)
|
||||||
self._run_test("{z|'foo'}" , value)
|
self._run_test("{z|'foo'}" , value)
|
||||||
self._run_test("{z|''|'foo'}" , value)
|
self._run_test("{z|''|'foo'}" , value)
|
||||||
|
self._run_test("{z|''}" , "")
|
||||||
|
self._run_test("{''|''}" , "")
|
||||||
|
|
||||||
self._run_test("{_lit[foo]}" , value)
|
self._run_test("{_lit[foo]}" , value)
|
||||||
self._run_test("{_lit[foo]!u}" , value.upper())
|
self._run_test("{_lit[foo]!u}" , value.upper())
|
||||||
|
|||||||
Reference in New Issue
Block a user