[formatter] use value of last alternative (#4492)

fixes {fieldname|''} evaluating to the value of 'keywords-default'
instead of an empty string
pull/3678/merge
Mike Fährmann 1 year ago
parent f856987297
commit 93a7a89cf6
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88

@ -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())

Loading…
Cancel
Save