3 from __future__
import unicode_literals
5 # Allow direct execution
9 sys
.path
.insert(0, os
.path
.dirname(os
.path
.dirname(os
.path
.abspath(__file__
))))
11 from yt_dlp
.postprocessor
import (
12 FFmpegThumbnailsConvertorPP
,
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>.+)')
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')
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')
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>.+)')
39 class TestConvertThumbnail(unittest
.TestCase
):
40 def test_escaping(self
):
41 pp
= FFmpegThumbnailsConvertorPP()
43 print('Skipping: ffmpeg not found')
46 file = 'test/testdata/thumbnails/foo %d bar/foo_%d.{}'
47 tests
= (('webp', 'png'), ('png', 'jpg'))
49 for inp
, out
in tests
:
50 out_file
= file.format(out
)
51 if os
.path
.exists(out_file
):
53 pp
.convert_thumbnail(file.format(inp
), out
)
54 assert os
.path
.exists(out_file
)
57 os
.remove(file.format(out
))