diff options
Diffstat (limited to 'test/test_YoutubeDL.py')
| -rw-r--r-- | test/test_YoutubeDL.py | 46 | 
1 files changed, 46 insertions, 0 deletions
| diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index 82b827536..a13c09ef4 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -12,6 +12,7 @@ import copy  from test.helper import FakeYDL, assertRegexpMatches  from youtube_dl import YoutubeDL +from youtube_dl.compat import compat_str  from youtube_dl.extractor import YoutubeIE  from youtube_dl.postprocessor.common import PostProcessor  from youtube_dl.utils import match_filter_func @@ -507,6 +508,51 @@ class TestYoutubeDL(unittest.TestCase):          res = get_videos(f)          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__':      unittest.main() | 
