From 35230a2b5ac18894a8bb2d6932557d2136a7af7c Mon Sep 17 00:00:00 2001 From: dirkf Date: Mon, 16 Oct 2023 03:26:51 +0100 Subject: [PATCH] [test] Improve shortcut processing for test playlists * check all playlist counts, not just max * also consider any actual playlist in the test case --- test/test_download.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/test/test_download.py b/test/test_download.py index e0bc8cb95..24422f4cb 100644 --- a/test/test_download.py +++ b/test/test_download.py @@ -35,6 +35,8 @@ from youtube_dl.utils import ( ExtractorError, error_to_compat_str, format_bytes, + T, + traverse_obj, UnavailableVideoError, ) from youtube_dl.extractor import get_info_extractor @@ -120,10 +122,14 @@ def generator(test_case, tname): params = get_params(test_case.get('params', {})) params['outtmpl'] = tname + '_' + params['outtmpl'] - if is_playlist and 'playlist' not in test_case: - params.setdefault('extract_flat', 'in_playlist') - params.setdefault('playlistend', test_case.get('playlist_mincount')) - params.setdefault('skip_download', True) + if is_playlist: + if 'playlist' not in test_case: + params.setdefault('extract_flat', 'in_playlist') + params.setdefault('skip_download', True) + # only process enough items for specified tests + pl_counts = traverse_obj(test_case, (None, ('playlist_count', 'playlist_mincount', 'playlist_maxcount', ('playlist', T(len))))) + if pl_counts is not None: + params.setdefault('playlistend', max(pl_counts) + 1) ydl = YoutubeDL(params, auto_init=False) ydl.add_default_info_extractors()