mirror of
				https://github.com/ytdl-org/youtube-dl
				synced 2025-11-04 03:33:46 +00:00 
			
		
		
		
	[test/YoutubeDL] Add tests for 'playliststart', 'playlistend' and 'playlist_items'
This commit is contained in:
		
							parent
							
								
									3884dcf313
								
							
						
					
					
						commit
						e9eaf3fbcf
					
				@ -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()
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user