mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-30 22:25:19 +00:00 
			
		
		
		
	[test/YoutubeDL] Add tests for 'playliststart', 'playlistend' and 'playlist_items'
This commit is contained in:
		| @@ -12,6 +12,7 @@ import copy | |||||||
|  |  | ||||||
| from test.helper import FakeYDL, assertRegexpMatches | from test.helper import FakeYDL, assertRegexpMatches | ||||||
| from youtube_dl import YoutubeDL | from youtube_dl import YoutubeDL | ||||||
|  | from youtube_dl.compat import compat_str | ||||||
| from youtube_dl.extractor import YoutubeIE | from youtube_dl.extractor import YoutubeIE | ||||||
| from youtube_dl.postprocessor.common import PostProcessor | from youtube_dl.postprocessor.common import PostProcessor | ||||||
| from youtube_dl.utils import match_filter_func | from youtube_dl.utils import match_filter_func | ||||||
| @@ -507,6 +508,51 @@ class TestYoutubeDL(unittest.TestCase): | |||||||
|         res = get_videos(f) |         res = get_videos(f) | ||||||
|         self.assertEqual(res, ['1']) |         self.assertEqual(res, ['1']) | ||||||
|  |  | ||||||
|  |     def test_playlist_items_selection(self): | ||||||
|  |         entries = [{ | ||||||
|  |             'id': compat_str(i), | ||||||
|  |             'title': compat_str(i), | ||||||
|  |             'url': TEST_URL, | ||||||
|  |         } for i in range(1, 5)] | ||||||
|  |         playlist = { | ||||||
|  |             '_type': 'playlist', | ||||||
|  |             'id': 'test', | ||||||
|  |             'entries': entries, | ||||||
|  |             'extractor': 'test:playlist', | ||||||
|  |             'extractor_key': 'test:playlist', | ||||||
|  |             'webpage_url': 'http://example.com', | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         def get_ids(params): | ||||||
|  |             ydl = YDL(params) | ||||||
|  |             # make a copy because the dictionary can be modified | ||||||
|  |             ydl.process_ie_result(playlist.copy()) | ||||||
|  |             return [int(v['id']) for v in ydl.downloaded_info_dicts] | ||||||
|  |  | ||||||
|  |         result = get_ids({}) | ||||||
|  |         self.assertEqual(result, [1, 2, 3, 4]) | ||||||
|  |  | ||||||
|  |         result = get_ids({'playlistend': 10}) | ||||||
|  |         self.assertEqual(result, [1, 2, 3, 4]) | ||||||
|  |  | ||||||
|  |         result = get_ids({'playlistend': 2}) | ||||||
|  |         self.assertEqual(result, [1, 2]) | ||||||
|  |  | ||||||
|  |         result = get_ids({'playliststart': 10}) | ||||||
|  |         self.assertEqual(result, []) | ||||||
|  |  | ||||||
|  |         result = get_ids({'playliststart': 2}) | ||||||
|  |         self.assertEqual(result, [2, 3, 4]) | ||||||
|  |  | ||||||
|  |         result = get_ids({'playlist_items': '2-4'}) | ||||||
|  |         self.assertEqual(result, [2, 3, 4]) | ||||||
|  |  | ||||||
|  |         result = get_ids({'playlist_items': '2,4'}) | ||||||
|  |         self.assertEqual(result, [2, 4]) | ||||||
|  |  | ||||||
|  |         result = get_ids({'playlist_items': '10'}) | ||||||
|  |         self.assertEqual(result, []) | ||||||
|  |  | ||||||
|  |  | ||||||
| if __name__ == '__main__': | if __name__ == '__main__': | ||||||
|     unittest.main() |     unittest.main() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jaime Marquínez Ferrándiz
					Jaime Marquínez Ferrándiz