Пример #1
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['de', 'en', 'es', 'fr']))
     self.assertEqual(md5(subtitles['en']), '8062383cf4dec168fc40a088aa6d5888')
     self.assertEqual(md5(subtitles['fr']), 'b6191146a6c5d3a452244d853fde6dc8')
Пример #2
0
 def test_allsubtitles(self):
     self.DL.params["writesubtitles"] = True
     self.DL.params["allsubtitles"] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(["de", "en", "es", "fr"]))
     self.assertEqual(md5(subtitles["en"]), "8062383cf4dec168fc40a088aa6d5888")
     self.assertEqual(md5(subtitles["fr"]), "b6191146a6c5d3a452244d853fde6dc8")
Пример #3
0
 def test_youtube_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(len(subtitles.keys()), 13)
     self.assertEqual(md5(subtitles['en']), '4cd9278a35ba2305f47354ee13472260')
     self.assertEqual(md5(subtitles['it']), '164a51f16f260476a05b50fe4c2f161d')
     for lang in ['it', 'fr', 'de']:
         self.assertTrue(subtitles.get(lang) is not None, 'Subtitles for \'%s\' not extracted' % lang)
Пример #4
0
 def test_allsubtitles(self):
     self.DL.params["writesubtitles"] = True
     self.DL.params["allsubtitles"] = True
     subtitles = self.getSubtitles()
     self.assertTrue(len(subtitles.keys()) >= 6)
     self.assertEqual(md5(subtitles["en"]), "976553874490cba125086bbfea3ff76f")
     self.assertEqual(md5(subtitles["fr"]), "594564ec7d588942e384e920e5341792")
     for lang in ["es", "fr", "de"]:
         self.assertTrue(subtitles.get(lang) is not None, "Subtitles for '%s' not extracted" % lang)
Пример #5
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertTrue(len(subtitles.keys()) >= 6)
     self.assertEqual(md5(subtitles['en']), '976553874490cba125086bbfea3ff76f')
     self.assertEqual(md5(subtitles['fr']), '594564ec7d588942e384e920e5341792')
     for lang in ['es', 'fr', 'de']:
         self.assertTrue(subtitles.get(lang) is not None, 'Subtitles for \'%s\' not extracted' % lang)
Пример #6
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertTrue(len(subtitles.keys()) >= 28)
     self.assertEqual(md5(subtitles['en']), '4262c1665ff928a2dada178f62cb8d14')
     self.assertEqual(md5(subtitles['fr']), '66a63f7f42c97a50f8c0e90bc7797bb5')
     for lang in ['es', 'fr', 'de']:
         self.assertTrue(subtitles.get(lang) is not None, 'Subtitles for \'%s\' not extracted' % lang)
Пример #7
0
 def test_youtube_allsubtitles(self):
     self.DL.params["writesubtitles"] = True
     self.DL.params["allsubtitles"] = True
     subtitles = self.getSubtitles()
     self.assertEqual(len(subtitles.keys()), 13)
     self.assertEqual(md5(subtitles["en"]), "4cd9278a35ba2305f47354ee13472260")
     self.assertEqual(md5(subtitles["it"]), "164a51f16f260476a05b50fe4c2f161d")
     for lang in ["it", "fr", "de"]:
         self.assertTrue(subtitles.get(lang) is not None, "Subtitles for '%s' not extracted" % lang)
Пример #8
0
 def test_allsubtitles(self):
     self.DL.params["writesubtitles"] = True
     self.DL.params["allsubtitles"] = True
     subtitles = self.getSubtitles()
     self.assertTrue(len(subtitles.keys()) >= 28)
     self.assertEqual(md5(subtitles["en"]), "4262c1665ff928a2dada178f62cb8d14")
     self.assertEqual(md5(subtitles["fr"]), "66a63f7f42c97a50f8c0e90bc7797bb5")
     for lang in ["es", "fr", "de"]:
         self.assertTrue(subtitles.get(lang) is not None, "Subtitles for '%s' not extracted" % lang)
Пример #9
0
	def test_youtube_allsubtitles(self):
		self.DL.params['writesubtitles'] = True
		self.DL.params['allsubtitles'] = True
		subtitles = self.getSubtitles()
		self.assertEqual(len(subtitles.keys()), 13)
		self.assertEqual(md5(subtitles['en']), '3cb210999d3e021bd6c7f0ea751eab06')
		self.assertEqual(md5(subtitles['it']), '6d752b98c31f1cf8d597050c7a2cb4b5')
		for lang in ['fr', 'de']:
			self.assertTrue(subtitles.get(lang) is not None, 'Subtitles for \'%s\' not extracted' % lang)
Пример #10
0
 def test_allsubtitles(self):
     self.DL.expect_warning('Automatic Captions not supported by this server')
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), '5b75c300af65fe4476dff79478bb93e4')
Пример #11
0
 def test_subtitles_in_page(self):
     self.url = 'http://www.democracynow.org/2015/7/3/this_flag_comes_down_today_bree'
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), 'acaca989e24a9e45a6719c9b3d60815c')
Пример #12
0
 def test_allsubtitles(self):
     self.DL.expect_warning("Automatic Captions not supported by this server")
     self.DL.params["writesubtitles"] = True
     self.DL.params["allsubtitles"] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(["heb"]))
     self.assertEqual(md5(subtitles["heb"]), "e758c5d7cb982f6bef14f377ec7a3920")
Пример #13
0
 def test_allsubtitles(self):
     self.DL.expect_warning("Automatic Captions not supported by this server")
     self.DL.params["writesubtitles"] = True
     self.DL.params["allsubtitles"] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(["en"]))
     self.assertEqual(md5(subtitles["en"]), "5b75c300af65fe4476dff79478bb93e4")
Пример #14
0
 def test_allsubtitles(self):
     self.DL.expect_warning("Automatic Captions not supported by this server")
     self.DL.params["writesubtitles"] = True
     self.DL.params["allsubtitles"] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(["cs"]))
     self.assertEqual(md5(subtitles["cs"]), "9bf52d9549533c32c427e264bf0847d4")
Пример #15
0
 def test_allsubtitles(self):
     self.DL.expect_warning('Automatic Captions not supported by this server')
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['heb']))
     self.assertEqual(md5(subtitles['heb']), 'e758c5d7cb982f6bef14f377ec7a3920')
Пример #16
0
 def test_allsubtitles(self):
     print('Skipping, only available from Spain')
     return
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['es']))
     self.assertEqual(md5(subtitles['es']), '69e70cae2d40574fb7316f31d6eb7fca')
Пример #17
0
 def test_allsubtitles(self):
     print("Skipping, only available from Spain")
     return
     self.DL.params["writesubtitles"] = True
     self.DL.params["allsubtitles"] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(["es"]))
     self.assertEqual(md5(subtitles["es"]), "69e70cae2d40574fb7316f31d6eb7fca")
Пример #18
0
 def test_youtube_subtitles_ttml_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'ttml'
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']), 'c97ddf1217390906fa9fbd34901f3da2')
Пример #19
0
 def test_subtitles(self):
     self.DL.params['writesubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']),
                      '976553874490cba125086bbfea3ff76f')
Пример #20
0
 def test_subtitles(self):
     self.DL.params['writesubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']),
                      '8062383cf4dec168fc40a088aa6d5888')
Пример #21
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), '97e7670cbae3c4d26ae8bcc7fdd78d4b')
Пример #22
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['it']))
     self.assertEqual(md5(subtitles['it']), 'b1d90a98755126b61e667567a1f6680a')
Пример #23
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), 'b9f6ca22a6acf597ec76f61749765e65')
Пример #24
0
 def test_youtube_subtitles_lang(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitleslangs'] = ['it']
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['it']),
                      '164a51f16f260476a05b50fe4c2f161d')
Пример #25
0
 def test_subtitles(self):
     self.DL.params['writesubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']),
                      '4262c1665ff928a2dada178f62cb8d14')
Пример #26
0
 def test_subtitles(self):
     self.DL.params['writesubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']), '26399116d23ae3cf2c087cea94bc43b4')
Пример #27
0
 def test_youtube_subtitles_ttml_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'ttml'
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']),
                      'e306f8c42842f723447d9f63ad65df54')
Пример #28
0
 def test_subtitles_lang(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitleslangs'] = ['fr']
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['fr']),
                      'b6191146a6c5d3a452244d853fde6dc8')
Пример #29
0
 def test_youtube_subtitles(self):
     self.DL.params['writesubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']),
                      '4cd9278a35ba2305f47354ee13472260')
Пример #30
0
 def test_youtube_subtitles_vtt_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'vtt'
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']), 'ae1bd34126571a77aabd4d276b28044d')
Пример #31
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), '09bbe67222259bed60deaa26997d73a7')
 def test_youtube_subtitles_vtt_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'vtt'
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']),
                      '356cdc577fde0c6783b9b822e7206ff7')
Пример #33
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['it']))
     self.assertEqual(md5(subtitles['it']), 'b1d90a98755126b61e667567a1f6680a')
Пример #34
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), '5b75c300af65fe4476dff79478bb93e4')
Пример #35
0
 def test_subtitles_lang(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitleslangs'] = ['fr']
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['fr']),
                      '594564ec7d588942e384e920e5341792')
Пример #36
0
 def test_youtube_subtitles_vtt_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'vtt'
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']), '3cb210999d3e021bd6c7f0ea751eab06')
Пример #37
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['nl']))
     self.assertEqual(md5(subtitles['nl']), 'fc6435027572b63fb4ab143abd5ad3f4')
Пример #38
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['nl']))
     self.assertEqual(md5(subtitles['nl']), 'fc6435027572b63fb4ab143abd5ad3f4')
Пример #39
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['no']))
     self.assertEqual(md5(subtitles['no']), '544fa917d3197fcbee64634559221cc2')
Пример #40
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['no']))
     self.assertEqual(md5(subtitles['no']), '544fa917d3197fcbee64634559221cc2')
Пример #41
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), '97e7670cbae3c4d26ae8bcc7fdd78d4b')
Пример #42
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), '53cb083a5914b2d84ef1ab67b880d18a')
Пример #43
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), 'acaca989e24a9e45a6719c9b3d60815c')
Пример #44
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), '48649a22e82b2da21c9a67a395eedade')
Пример #45
0
 def test_subtitles_lang(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitleslangs'] = ['fr']
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['fr']),
                      '66a63f7f42c97a50f8c0e90bc7797bb5')
Пример #46
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), 'c5593c193eacd353596c11c2d4f9ecc4')
Пример #47
0
 def test_youtube_subtitles_sbv_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'sbv'
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']),
                      '13aeaa0c245a8bed9a451cb643e3ad8b')
Пример #48
0
 def test_youtube_subtitles_sbv_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'sbv'
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']), '13aeaa0c245a8bed9a451cb643e3ad8b')
Пример #49
0
 def test_youtube_subtitles_vtt_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'vtt'
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles['en']),
                      '3cb210999d3e021bd6c7f0ea751eab06')
Пример #50
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), '09bbe67222259bed60deaa26997d73a7')
Пример #51
0
 def test_subtitles_dfxp_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'dfxp'
     subtitles = self.getSubtitles()
     self.assertIn(md5(subtitles['en']), ['643b034254cdc3768ff1e750b6b5873b'])
Пример #52
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), '78206b8d8a0cfa9da64dc026eea48961')
Пример #53
0
 def test_subtitles_vtt_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'vtt'
     subtitles = self.getSubtitles()
     self.assertIn(
         md5(subtitles['en']), ['937a05711555b165d4c55a9667017045', 'f49ea998d6824d94959c8152a368ff73'])
Пример #54
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), '53cb083a5914b2d84ef1ab67b880d18a')
Пример #55
0
 def test_subtitles_srt_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'srt'
     subtitles = self.getSubtitles()
     self.assertIn(md5(subtitles['en']), ['2082c21b43759d9bf172931b2f2ca371'])
Пример #56
0
 def test_allsubtitles(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['allsubtitles'] = True
     subtitles = self.getSubtitles()
     self.assertEqual(set(subtitles.keys()), set(['en']))
     self.assertEqual(md5(subtitles['en']), '48649a22e82b2da21c9a67a395eedade')
Пример #57
0
 def test_subtitles_sami_format(self):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = 'sami'
     subtitles = self.getSubtitles()
     self.assertIn(md5(subtitles['en']), ['4256b16ac7da6a6780fafd04294e85cd'])
Пример #58
0
    def test_template(self):
        ie = youtube_dl.extractor.get_info_extractor(test_case['name'])
        other_ies = [get_info_extractor(ie_key) for ie_key in test_case.get('add_ie', [])]
        def print_skipping(reason):
            print('Skipping %s: %s' % (test_case['name'], reason))
        if not ie.working():
            print_skipping('IE marked as not _WORKING')
            return
        if 'playlist' not in test_case:
            info_dict = test_case.get('info_dict', {})
            if not test_case.get('file') and not (info_dict.get('id') and info_dict.get('ext')):
                print_skipping('The output file cannot be know, the "file" '
                    'key is missing or the info_dict is incomplete')
                return
        if 'skip' in test_case:
            print_skipping(test_case['skip'])
            return
        for other_ie in other_ies:
            if not other_ie.working():
                print_skipping(u'test depends on %sIE, marked as not WORKING' % other_ie.ie_key())
                return

        params = get_params(test_case.get('params', {}))

        ydl = YoutubeDL(params)
        ydl.add_default_info_extractors()
        finished_hook_called = set()
        def _hook(status):
            if status['status'] == 'finished':
                finished_hook_called.add(status['filename'])
        ydl.add_progress_hook(_hook)

        def get_tc_filename(tc):
            return tc.get('file') or ydl.prepare_filename(tc.get('info_dict', {}))

        test_cases = test_case.get('playlist', [test_case])
        def try_rm_tcs_files():
            for tc in test_cases:
                tc_filename = get_tc_filename(tc)
                try_rm(tc_filename)
                try_rm(tc_filename + '.part')
                try_rm(os.path.splitext(tc_filename)[0] + '.info.json')
        try_rm_tcs_files()
        try:
            try_num = 1
            while True:
                try:
                    ydl.download([test_case['url']])
                except (DownloadError, ExtractorError) as err:
                    # Check if the exception is not a network related one
                    if not err.exc_info[0] in (compat_urllib_error.URLError, socket.timeout, UnavailableVideoError, compat_http_client.BadStatusLine) or (err.exc_info[0] == compat_HTTPError and err.exc_info[1].code == 503):
                        raise

                    if try_num == RETRIES:
                        report_warning(u'Failed due to network errors, skipping...')
                        return

                    print('Retrying: {0} failed tries\n\n##########\n\n'.format(try_num))

                    try_num += 1
                else:
                    break

            for tc in test_cases:
                tc_filename = get_tc_filename(tc)
                if not test_case.get('params', {}).get('skip_download', False):
                    self.assertTrue(os.path.exists(tc_filename), msg='Missing file ' + tc_filename)
                    self.assertTrue(tc_filename in finished_hook_called)
                info_json_fn = os.path.splitext(tc_filename)[0] + '.info.json'
                self.assertTrue(os.path.exists(info_json_fn))
                if 'md5' in tc:
                    md5_for_file = _file_md5(tc_filename)
                    self.assertEqual(md5_for_file, tc['md5'])
                with io.open(info_json_fn, encoding='utf-8') as infof:
                    info_dict = json.load(infof)
                for (info_field, expected) in tc.get('info_dict', {}).items():
                    if isinstance(expected, compat_str) and expected.startswith('md5:'):
                        got = 'md5:' + md5(info_dict.get(info_field))
                    else:
                        got = info_dict.get(info_field)
                    self.assertEqual(expected, got,
                        u'invalid value for field %s, expected %r, got %r' % (info_field, expected, got))

                # If checkable fields are missing from the test case, print the info_dict
                test_info_dict = dict((key, value if not isinstance(value, compat_str) or len(value) < 250 else 'md5:' + md5(value))
                    for key, value in info_dict.items()
                    if value and key in ('title', 'description', 'uploader', 'upload_date', 'uploader_id', 'location'))
                if not all(key in tc.get('info_dict', {}).keys() for key in test_info_dict.keys()):
                    sys.stderr.write(u'\n"info_dict": ' + json.dumps(test_info_dict, ensure_ascii=False, indent=4) + u'\n')

                # Check for the presence of mandatory fields
                for key in ('id', 'url', 'title', 'ext'):
                    self.assertTrue(key in info_dict.keys() and info_dict[key])
                # Check for mandatory fields that are automatically set by YoutubeDL
                for key in ['webpage_url', 'extractor', 'extractor_key']:
                    self.assertTrue(info_dict.get(key), u'Missing field: %s' % key)
        finally:
            try_rm_tcs_files()
Пример #59
0
 def _test_subtitles_format(self, fmt, md5_hash, lang='en'):
     self.DL.params['writesubtitles'] = True
     self.DL.params['subtitlesformat'] = fmt
     subtitles = self.getSubtitles()
     self.assertEqual(md5(subtitles[lang]), md5_hash)