[test/test_download] Support 'playlist_maxcount:count' expected value
authordirkf <fieldhouse@gmx.net>
Thu, 11 Apr 2024 11:47:05 +0000 (12:47 +0100)
committerdirkf <fieldhouse@gmx.net>
Mon, 22 Apr 2024 00:34:26 +0000 (01:34 +0100)
* parallel to `playlist_mincount'
* specify both for a range of playlist lengths
* if max < min the test will always fail!

test/test_download.py

index e0bc8cb954227d54f8aab425f1a960c9faa89d0b..df8b370cfdcf839d0f3482b76f873adb327e47f6 100644 (file)
@@ -10,6 +10,7 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
 
 from test.helper import (
     assertGreaterEqual,
+    assertLessEqual,
     expect_warnings,
     get_params,
     gettestcases,
@@ -122,7 +123,10 @@ def generator(test_case, tname):
         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('playlistend',
+                              test_case['playlist_maxcount'] + 1
+                              if test_case.get('playlist_maxcount')
+                              else test_case.get('playlist_mincount'))
             params.setdefault('skip_download', True)
 
         ydl = YoutubeDL(params, auto_init=False)
@@ -190,6 +194,14 @@ def generator(test_case, tname):
                     'Expected at least %d in playlist %s, but got only %d' % (
                         test_case['playlist_mincount'], test_case['url'],
                         len(res_dict['entries'])))
+            if 'playlist_maxcount' in test_case:
+                assertLessEqual(
+                    self,
+                    len(res_dict['entries']),
+                    test_case['playlist_maxcount'],
+                    'Expected at most %d in playlist %s, but got %d' % (
+                        test_case['playlist_maxcount'], test_case['url'],
+                        len(res_dict['entries'])))
             if 'playlist_count' in test_case:
                 self.assertEqual(
                     len(res_dict['entries']),