From 495322b95bbf8befa0f0b354f110a1d4eddac784 Mon Sep 17 00:00:00 2001 From: pukkandan Date: Thu, 10 Nov 2022 07:32:25 +0530 Subject: [PATCH] [test] Allow `extract_flat` in download tests Authored by: coletdjnz, pukkandan --- test/helper.py | 9 +++++++-- test/test_download.py | 4 +++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/test/helper.py b/test/helper.py index 3b3b44580..139bdafc3 100644 --- a/test/helper.py +++ b/test/helper.py @@ -222,6 +222,10 @@ def sanitize_got_info_dict(got_dict): 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) diff --git a/test/test_download.py b/test/test_download.py index 7ee8c7c43..43b39c36b 100755 --- a/test/test_download.py +++ b/test/test_download.py @@ -106,7 +106,7 @@ def generator(test_case, tname): 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 generator(test_case, tname): 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):