aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--test/helper.py5
-rw-r--r--test/test_download.py9
2 files changed, 11 insertions, 3 deletions
diff --git a/test/helper.py b/test/helper.py
index b40ffe3ce..9599eab8e 100644
--- a/test/helper.py
+++ b/test/helper.py
@@ -198,7 +198,10 @@ def expect_info_dict(self, got_dict, expected_dict):
expect_dict(self, got_dict, expected_dict)
# Check for the presence of mandatory fields
if got_dict.get('_type') not in ('playlist', 'multi_video'):
- for key in ('id', 'url', 'title', 'ext'):
+ mandatory_fields = ['id', 'title']
+ if expected_dict.get('ext'):
+ mandatory_fields.extend(('url', 'ext'))
+ 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']:
diff --git a/test/test_download.py b/test/test_download.py
index e4485ce81..546748454 100644
--- a/test/test_download.py
+++ b/test/test_download.py
@@ -108,8 +108,13 @@ def generator(test_case, tname):
for tc in test_cases:
info_dict = tc.get('info_dict', {})
- if not (info_dict.get('id') and info_dict.get('ext')):
- raise Exception('Test definition incorrect. The output file cannot be known. Are both \'id\' and \'ext\' keys present?')
+ params = tc.get('params', {})
+ if not info_dict.get('id'):
+ raise Exception('Test definition incorrect. \'id\' key is not present')
+ elif not info_dict.get('ext'):
+ if params.get('skip_download') and params.get('ignore_no_formats_error'):
+ continue
+ raise Exception('Test definition incorrect. The output file cannot be known. \'ext\' key is not present')
if 'skip' in test_case:
print_skipping(test_case['skip'])