mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 22:55:18 +00:00 
			
		
		
		
	[generic] Add a test case for direct links with broken HEAD (#4032)
This commit is contained in:
		| @@ -171,3 +171,13 @@ def assertGreaterEqual(self, got, expected, msg=None): | ||||
|         if msg is None: | ||||
|             msg = '%r not greater than or equal to %r' % (got, expected) | ||||
|         self.assertTrue(got >= expected, msg) | ||||
|  | ||||
|  | ||||
| def expect_warnings(ydl, warnings_re): | ||||
|     real_warning = ydl.report_warning | ||||
|  | ||||
|     def _report_warning(w): | ||||
|         if not any(re.search(w_re, w) for w_re in warnings_re): | ||||
|             real_warning(w) | ||||
|  | ||||
|     ydl.report_warning = _report_warning | ||||
|   | ||||
| @@ -8,6 +8,7 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | ||||
|  | ||||
| from test.helper import ( | ||||
|     assertGreaterEqual, | ||||
|     expect_warnings, | ||||
|     get_params, | ||||
|     gettestcases, | ||||
|     expect_info_dict, | ||||
| @@ -100,6 +101,7 @@ def generator(test_case): | ||||
|             if status['status'] == 'finished': | ||||
|                 finished_hook_called.add(status['filename']) | ||||
|         ydl.add_progress_hook(_hook) | ||||
|         expect_warnings(ydl, test_case.get('expected_warnings', [])) | ||||
|  | ||||
|         def get_tc_filename(tc): | ||||
|             return tc.get('file') or ydl.prepare_filename(tc.get('info_dict', {})) | ||||
|   | ||||
| @@ -391,6 +391,21 @@ class GenericIE(InfoExtractor): | ||||
|                 'uploader': 'thoughtworks.wistia.com', | ||||
|             }, | ||||
|         }, | ||||
|         # Direct download with broken HEAD | ||||
|         { | ||||
|             'url': 'http://ai-radio.org:8000/radio.opus', | ||||
|             'info_dict': { | ||||
|                 'id': 'radio', | ||||
|                 'ext': 'opus', | ||||
|                 'title': 'radio', | ||||
|             }, | ||||
|             'params': { | ||||
|                 'skip_download': True,  # infinite live stream | ||||
|             }, | ||||
|             'expected_warnings': [ | ||||
|                 r'501.*Not Implemented' | ||||
|             ], | ||||
|         } | ||||
|     ] | ||||
|  | ||||
|     def report_following_redirect(self, new_url): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Philipp Hagemeister
					Philipp Hagemeister