mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 06:35:12 +00:00 
			
		
		
		
	add capability to suppress expected warnings in tests
This commit is contained in:
		| @@ -1,6 +1,8 @@ | ||||
| import io | ||||
| import json | ||||
| import os.path | ||||
| import re | ||||
| import types | ||||
|  | ||||
| import youtube_dl.extractor | ||||
| from youtube_dl import YoutubeDL, YoutubeDLHandler | ||||
| @@ -32,6 +34,19 @@ class FakeYDL(YoutubeDL): | ||||
|         raise Exception(s) | ||||
|     def download(self, x): | ||||
|         self.result.append(x) | ||||
|     # def expect_warning(self, regex): | ||||
|     #     # Silence an expected warning matching a regex | ||||
|     #     def report_warning(self, message): | ||||
|     #         if re.match(regex, message): return | ||||
|     #         super(FakeYDL, self).report_warning(regex) | ||||
|     #     self.report_warning = types.MethodType(report_warning, self) | ||||
|     def expect_warning(self, regex): | ||||
|         # Silence an expected warning matching a regex | ||||
|         old_report_warning = self.report_warning | ||||
|         def report_warning(self, message): | ||||
|             if re.match(regex, message): return | ||||
|             old_report_warning(message) | ||||
|         self.report_warning = types.MethodType(report_warning, self) | ||||
|  | ||||
| def get_testcases(): | ||||
|     for ie in youtube_dl.extractor.gen_extractors(): | ||||
|   | ||||
| @@ -2,8 +2,6 @@ | ||||
|  | ||||
| import sys | ||||
| import unittest | ||||
| import json | ||||
| import io | ||||
| import hashlib | ||||
|  | ||||
| # Allow direct execution | ||||
| @@ -45,15 +43,18 @@ class TestDailymotionSubtitles(unittest.TestCase): | ||||
|         subtitles = self.getSubtitles() | ||||
|         self.assertEqual(len(subtitles.keys()), 5) | ||||
|     def test_list_subtitles(self): | ||||
|         self.DL.expect_warning(u'Automatic Captions not supported by this server') | ||||
|         self.DL.params['listsubtitles'] = True | ||||
|         info_dict = self.getInfoDict() | ||||
|         self.assertEqual(info_dict, None) | ||||
|     def test_automatic_captions(self): | ||||
|         self.DL.expect_warning(u'Automatic Captions not supported by this server') | ||||
|         self.DL.params['writeautomaticsub'] = True | ||||
|         self.DL.params['subtitleslang'] = ['en'] | ||||
|         subtitles = self.getSubtitles() | ||||
|         self.assertTrue(len(subtitles.keys()) == 0) | ||||
|     def test_nosubtitles(self): | ||||
|         self.DL.expect_warning(u'video doesn\'t have subtitles') | ||||
|         self.url = 'http://www.dailymotion.com/video/x12u166_le-zapping-tele-star-du-08-aout-2013_tv' | ||||
|         self.DL.params['writesubtitles'] = True | ||||
|         self.DL.params['allsubtitles'] = True | ||||
|   | ||||
| @@ -2,8 +2,6 @@ | ||||
|  | ||||
| import sys | ||||
| import unittest | ||||
| import json | ||||
| import io | ||||
| import hashlib | ||||
|  | ||||
| # Allow direct execution | ||||
| @@ -56,6 +54,7 @@ class TestYoutubeSubtitles(unittest.TestCase): | ||||
|         subtitles = self.getSubtitles() | ||||
|         self.assertEqual(md5(subtitles['en']), '356cdc577fde0c6783b9b822e7206ff7') | ||||
|     def test_youtube_list_subtitles(self): | ||||
|         self.DL.expect_warning(u'Video doesn\'t have automatic captions') | ||||
|         self.DL.params['listsubtitles'] = True | ||||
|         info_dict = self.getInfoDict() | ||||
|         self.assertEqual(info_dict, None) | ||||
| @@ -66,6 +65,7 @@ class TestYoutubeSubtitles(unittest.TestCase): | ||||
|         subtitles = self.getSubtitles() | ||||
|         self.assertTrue(subtitles['it'] is not None) | ||||
|     def test_youtube_nosubtitles(self): | ||||
|         self.DL.expect_warning(u'video doesn\'t have subtitles') | ||||
|         self.url = 'sAjKT8FhjI8' | ||||
|         self.DL.params['writesubtitles'] = True | ||||
|         self.DL.params['allsubtitles'] = True | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Filippo Valsorda
					Filippo Valsorda