]> jfr.im git - yt-dlp.git/blame - test/test_postprocessors.py
[embedthumbnail] Correctly escape filename
[yt-dlp.git] / test / test_postprocessors.py
CommitLineData
88cf6fb3
JMF
1#!/usr/bin/env python
2
3from __future__ import unicode_literals
4
5# Allow direct execution
6import os
7import sys
8import unittest
9sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
10
337e0c62 11from yt_dlp.postprocessor import (
12 FFmpegThumbnailsConvertorPP,
13 MetadataFromFieldPP,
14 MetadataFromTitlePP,
15)
5bfa4862 16
17
18class TestMetadataFromField(unittest.TestCase):
19 def test_format_to_regex(self):
20 pp = MetadataFromFieldPP(None, ['title:%(title)s - %(artist)s'])
84601bb7 21 self.assertEqual(pp._data[0]['regex'], r'(?P<title>.+)\ \-\ (?P<artist>.+)')
88cf6fb3 22
a3faeb7d 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
88cf6fb3
JMF
32
33class TestMetadataFromTitle(unittest.TestCase):
34 def test_format_to_regex(self):
35 pp = MetadataFromTitlePP(None, '%(title)s - %(artist)s')
84601bb7 36 self.assertEqual(pp._titleregex, r'(?P<title>.+)\ \-\ (?P<artist>.+)')
337e0c62 37
38
39class 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))