aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2021-08-07 05:12:54 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2021-08-07 21:17:04 +0530
commit2b8a2973bde415fc227790275dfd3e55e43babae (patch)
tree1d33dd46837a7a8ee7335e392c92438f461d0562 /test
parentb7b04c782eec0945d54aff5ebe9cade413a10377 (diff)
downloadhypervideo-pre-2b8a2973bde415fc227790275dfd3e55e43babae.tar.lz
hypervideo-pre-2b8a2973bde415fc227790275dfd3e55e43babae.tar.xz
hypervideo-pre-2b8a2973bde415fc227790275dfd3e55e43babae.zip
Allow entire infodict to be printed using `%()s`
Makes `--dump-json` redundant
Diffstat (limited to 'test')
-rw-r--r--test/test_YoutubeDL.py27
1 files changed, 17 insertions, 10 deletions
diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py
index 1e0865102..7e0133027 100644
--- a/test/test_YoutubeDL.py
+++ b/test/test_YoutubeDL.py
@@ -668,15 +668,13 @@ class TestYoutubeDL(unittest.TestCase):
out = ydl.escape_outtmpl(outtmpl) % tmpl_dict
fname = ydl.prepare_filename(info or self.outtmpl_info)
- if callable(expected):
- self.assertTrue(expected(out))
- self.assertTrue(expected(fname))
- elif isinstance(expected, str):
- self.assertEqual(out, expected)
- self.assertEqual(fname, expected)
- else:
- self.assertEqual(out, expected[0])
- self.assertEqual(fname, expected[1])
+ if not isinstance(expected, (list, tuple)):
+ expected = (expected, expected)
+ for (name, got), expect in zip((('outtmpl', out), ('filename', fname)), expected):
+ if callable(expect):
+ self.assertTrue(expect(got), f'Wrong {name} from {tmpl}')
+ else:
+ self.assertEqual(got, expect, f'Wrong {name} from {tmpl}')
# Side-effects
original_infodict = dict(self.outtmpl_info)
@@ -721,7 +719,16 @@ class TestYoutubeDL(unittest.TestCase):
# Invalid templates
self.assertTrue(isinstance(YoutubeDL.validate_outtmpl('%(title)'), ValueError))
test('%(invalid@tmpl|def)s', 'none', outtmpl_na_placeholder='none')
- test('%()s', 'NA')
+ test('%(..)s', 'NA')
+
+ # Entire info_dict
+ def expect_same_infodict(out):
+ got_dict = json.loads(out)
+ for info_field, expected in self.outtmpl_info.items():
+ self.assertEqual(got_dict.get(info_field), expected, info_field)
+ return True
+
+ test('%()j', (expect_same_infodict, str))
# NA placeholder
NA_TEST_OUTTMPL = '%(uploader_date)s-%(width)d-%(x|def)s-%(id)s.%(ext)s'