mirror of
https://github.com/mikf/gallery-dl.git
synced 2024-11-22 10:42:34 +01:00
allow missing field access keys in format strings (#136)
This commit is contained in:
parent
0c9762f00e
commit
c5d4f558c9
@ -382,11 +382,11 @@ class Formatter():
|
||||
|
||||
def _apply(self, key, funcs, fmt):
|
||||
def wrap(obj):
|
||||
if key in obj:
|
||||
try:
|
||||
obj = obj[key]
|
||||
for func in funcs:
|
||||
obj = func(obj)
|
||||
else:
|
||||
except Exception:
|
||||
obj = self.default
|
||||
return fmt(obj)
|
||||
return wrap
|
||||
|
@ -188,11 +188,17 @@ class TestFormatter(unittest.TestCase):
|
||||
|
||||
def test_missing(self):
|
||||
replacement = "None"
|
||||
|
||||
self._run_test("{missing}", replacement)
|
||||
self._run_test("{missing.attr}", replacement)
|
||||
self._run_test("{missing[key]}", replacement)
|
||||
self._run_test("{missing:?a//}", "")
|
||||
|
||||
self._run_test("{name[missing]}", replacement)
|
||||
self._run_test("{name[missing].attr}", replacement)
|
||||
self._run_test("{name[missing][key]}", replacement)
|
||||
self._run_test("{name[missing]:?a//}", "")
|
||||
|
||||
def test_missing_custom_default(self):
|
||||
replacement = default = "foobar"
|
||||
self._run_test("{missing}" , replacement, default)
|
||||
|
Loading…
Reference in New Issue
Block a user