diff options
| author | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2015-02-22 11:26:27 +0100 | 
|---|---|---|
| committer | Jaime Marquínez Ferrándiz <jaime.marquinez.ferrandiz@gmail.com> | 2015-02-22 11:29:56 +0100 | 
| commit | ab84349b16b3c94775543a04855fc77005f8237e (patch) | |
| tree | 904ad5d512d89cfc329168768aa1942ceab7ea05 /test | |
| parent | 03091e372f7033fa52c7961b1a99cd3790c0f60f (diff) | |
[test/YoutubeDL] Add test for subtitles
Updated the offlinetest make target to not skip it
Diffstat (limited to 'test')
| -rw-r--r-- | test/test_YoutubeDL.py | 52 | 
1 files changed, 52 insertions, 0 deletions
| diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index b1cd6a69f..e11292211 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -337,6 +337,58 @@ class TestFormatSelection(unittest.TestCase):          downloaded = ydl.downloaded_info_dicts[0]          self.assertEqual(downloaded['format_id'], 'G') +    def test_subtitles(self): +        def s_formats(lang, autocaption=False): +            return [{ +                'ext': ext, +                'url': 'http://localhost/video.%s.%s' % (lang, ext), +                '_auto': autocaption, +            } for ext in ['vtt', 'srt', 'ass']] +        subtitles = dict((l, s_formats(l)) for l in ['en', 'fr', 'es']) +        auto_captions = dict((l, s_formats(l, True)) for l in ['it', 'pt', 'es']) +        info_dict = { +            'id': 'test', +            'title': 'Test', +            'url': 'http://localhost/video.mp4', +            'subtitles': subtitles, +            'automatic_captions': auto_captions, +            'extractor': 'TEST', +        } + +        def get_info(params={}): +            params.setdefault('simulate', True) +            ydl = YDL(params) +            ydl.report_warning = lambda *args, **kargs: None +            return ydl.process_video_result(info_dict, download=False) + +        result = get_info() +        self.assertFalse(result.get('requested_subtitles')) +        self.assertEqual(result['subtitles'], subtitles) +        self.assertEqual(result['automatic_captions'], auto_captions) + +        result = get_info({'writesubtitles': True}) +        subs = result['requested_subtitles'] +        self.assertTrue(subs) +        self.assertEqual(set(subs.keys()), set(['en'])) +        self.assertTrue(subs['en'].get('data') is None) +        self.assertEqual(subs['en']['ext'], 'ass') + +        result = get_info({'writesubtitles': True, 'subtitlesformat': 'foo/srt'}) +        subs = result['requested_subtitles'] +        self.assertEqual(subs['en']['ext'], 'srt') + +        result = get_info({'writesubtitles': True, 'subtitleslangs': ['es', 'fr', 'it']}) +        subs = result['requested_subtitles'] +        self.assertTrue(subs) +        self.assertEqual(set(subs.keys()), set(['es', 'fr'])) + +        result = get_info({'writesubtitles': True, 'writeautomaticsub': True, 'subtitleslangs': ['es', 'pt']}) +        subs = result['requested_subtitles'] +        self.assertTrue(subs) +        self.assertEqual(set(subs.keys()), set(['es', 'pt'])) +        self.assertFalse(subs['es']['_auto']) +        self.assertTrue(subs['pt']['_auto']) +      def test_add_extra_info(self):          test_dict = {              'extractor': 'Foo', | 
