]> jfr.im git - yt-dlp.git/commitdiff
[test] Allow `extract_flat` in download tests
authorpukkandan <redacted>
Thu, 10 Nov 2022 02:02:25 +0000 (07:32 +0530)
committerpukkandan <redacted>
Thu, 10 Nov 2022 02:02:35 +0000 (07:32 +0530)
Authored by: coletdjnz, pukkandan

test/helper.py
test/test_download.py

index 3b3b44580dee1046d3ce0bd2c414a9667c5e5988..139bdafc3b181a51373e9e2b3de2fe18ae935076 100644 (file)
@@ -222,6 +222,10 @@ def sanitize(key, value):
     if test_info_dict.get('display_id') == test_info_dict.get('id'):
         test_info_dict.pop('display_id')
 
+    # Check url for flat entries
+    if got_dict.get('_type', 'video') != 'video' and got_dict.get('url'):
+        test_info_dict['url'] = got_dict['url']
+
     return test_info_dict
 
 
@@ -235,8 +239,9 @@ def expect_info_dict(self, got_dict, expected_dict):
         for key in mandatory_fields:
             self.assertTrue(got_dict.get(key), 'Missing mandatory field %s' % key)
     # Check for mandatory fields that are automatically set by YoutubeDL
-    for key in ['webpage_url', 'extractor', 'extractor_key']:
-        self.assertTrue(got_dict.get(key), 'Missing field: %s' % key)
+    if got_dict.get('_type', 'video') == 'video':
+        for key in ['webpage_url', 'extractor', 'extractor_key']:
+            self.assertTrue(got_dict.get(key), 'Missing field: %s' % key)
 
     test_info_dict = sanitize_got_info_dict(got_dict)
 
index 7ee8c7c432cefa47e34951aeac82ee83b66f7665..43b39c36b3c77cceddd46143a0f3806ec3ae9a5a 100755 (executable)
@@ -106,7 +106,7 @@ def print_skipping(reason):
             params = tc.get('params', {})
             if not info_dict.get('id'):
                 raise Exception(f'Test {tname} definition incorrect - "id" key is not present')
-            elif not info_dict.get('ext'):
+            elif not info_dict.get('ext') and info_dict.get('_type', 'video') == 'video':
                 if params.get('skip_download') and params.get('ignore_no_formats_error'):
                     continue
                 raise Exception(f'Test {tname} definition incorrect - "ext" key must be present to define the output file')
@@ -213,6 +213,8 @@ def try_rm_tcs_files(tcs=None):
                 tc_res_dict = res_dict['entries'][tc_num]
                 # First, check test cases' data against extracted data alone
                 expect_info_dict(self, tc_res_dict, tc.get('info_dict', {}))
+                if tc_res_dict.get('_type', 'video') != 'video':
+                    continue
                 # Now, check downloaded file consistency
                 tc_filename = get_tc_filename(tc)
                 if not test_case.get('params', {}).get('skip_download', False):