diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-06-17 02:15:57 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-06-17 02:32:24 +0530 |
commit | 9fea350f0d76b5d0c1fc813e4badc129ad02c865 (patch) | |
tree | aeb020b2f04d4756c61666e7d34c127f3bd0da7d /test | |
parent | e858a9d6d38f472e608913dadab4b8d703f45aaf (diff) | |
download | hypervideo-pre-9fea350f0d76b5d0c1fc813e4badc129ad02c865.tar.lz hypervideo-pre-9fea350f0d76b5d0c1fc813e4badc129ad02c865.tar.xz hypervideo-pre-9fea350f0d76b5d0c1fc813e4badc129ad02c865.zip |
Fix id sanitization in filenames
Closes #415
Diffstat (limited to 'test')
-rw-r--r-- | test/test_YoutubeDL.py | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index 8d796bcdd..c02bfadfc 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -664,15 +664,15 @@ class TestYoutubeDL(unittest.TestCase): } def test_prepare_outtmpl_and_filename(self): - def test(tmpl, expected, **params): + def test(tmpl, expected, *, info=None, **params): params['outtmpl'] = tmpl ydl = YoutubeDL(params) ydl._num_downloads = 1 self.assertEqual(ydl.validate_outtmpl(tmpl), None) - outtmpl, tmpl_dict = ydl.prepare_outtmpl(tmpl, self.outtmpl_info) + outtmpl, tmpl_dict = ydl.prepare_outtmpl(tmpl, info or self.outtmpl_info) out = outtmpl % tmpl_dict - fname = ydl.prepare_filename(self.outtmpl_info) + fname = ydl.prepare_filename(info or self.outtmpl_info) if callable(expected): self.assertTrue(expected(out)) @@ -700,6 +700,15 @@ class TestYoutubeDL(unittest.TestCase): test('%(width)06d.%%(ext)s', 'NA.%(ext)s') test('%%(width)06d.%(ext)s', '%(width)06d.mp4') + # ID sanitization + test('%(id)s', '_abcd', info={'id': '_abcd'}) + test('%(some_id)s', '_abcd', info={'some_id': '_abcd'}) + test('%(formats.0.id)s', '_abcd', info={'formats': [{'id': '_abcd'}]}) + test('%(id)s', '-abcd', info={'id': '-abcd'}) + test('%(id)s', '.abcd', info={'id': '.abcd'}) + test('%(id)s', 'ab__cd', info={'id': 'ab__cd'}) + test('%(id)s', ('ab:cd', 'ab -cd'), info={'id': 'ab:cd'}) + # Invalid templates self.assertTrue(isinstance(YoutubeDL.validate_outtmpl('%'), ValueError)) self.assertTrue(isinstance(YoutubeDL.validate_outtmpl('%(title)'), ValueError)) |