mirror of
https://github.com/l1ving/youtube-dl
synced 2024-12-21 12:52:51 +08: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…
Reference in New Issue
Block a user