]> jfr.im git - yt-dlp.git/blob - test/test_postprocessors.py
[embedthumbnail] Correctly escape filename
[yt-dlp.git] / test / test_postprocessors.py
1 #!/usr/bin/env python
2
3 from __future__ import unicode_literals
4
5 # Allow direct execution
6 import os
7 import sys
8 import unittest
9 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
10
11 from yt_dlp.postprocessor import (
12 FFmpegThumbnailsConvertorPP,
13 MetadataFromFieldPP,
14 MetadataFromTitlePP,
15 )
16
17
18 class TestMetadataFromField(unittest.TestCase):
19 def test_format_to_regex(self):
20 pp = MetadataFromFieldPP(None, ['title:%(title)s - %(artist)s'])
21 self.assertEqual(pp._data[0]['regex'], r'(?P<title>.+)\ \-\ (?P<artist>.+)')
22
23 def test_field_to_outtmpl(self):
24 pp = MetadataFromFieldPP(None, ['title:%(title)s : %(artist)s'])
25 self.assertEqual(pp._data[0]['tmpl'], '%(title)s')
26
27 def test_in_out_seperation(self):
28 pp = MetadataFromFieldPP(None, ['%(title)s \\: %(artist)s:%(title)s : %(artist)s'])
29 self.assertEqual(pp._data[0]['in'], '%(title)s : %(artist)s')
30 self.assertEqual(pp._data[0]['out'], '%(title)s : %(artist)s')
31
32
33 class TestMetadataFromTitle(unittest.TestCase):
34 def test_format_to_regex(self):
35 pp = MetadataFromTitlePP(None, '%(title)s - %(artist)s')
36 self.assertEqual(pp._titleregex, r'(?P<title>.+)\ \-\ (?P<artist>.+)')
37
38
39 class TestConvertThumbnail(unittest.TestCase):
40 def test_escaping(self):
41 pp = FFmpegThumbnailsConvertorPP()
42 if not pp.available:
43 print('Skipping: ffmpeg not found')
44 return
45
46 file = 'test/testdata/thumbnails/foo %d bar/foo_%d.{}'
47 tests = (('webp', 'png'), ('png', 'jpg'))
48
49 for inp, out in tests:
50 out_file = file.format(out)
51 if os.path.exists(out_file):
52 os.remove(out_file)
53 pp.convert_thumbnail(file.format(inp), out)
54 assert os.path.exists(out_file)
55
56 for _, out in tests:
57 os.remove(file.format(out))