In tests.json file and md5 join in a 'files' list to handle multiple-file IEs

This commit is contained in:
Filippo Valsorda 2013-01-01 16:07:26 +01:00
parent 60c7520a51
commit 6535e9511f
2 changed files with 38 additions and 53 deletions

View file

@ -54,9 +54,10 @@ class TestDownload(unittest.TestCase):
self.tearDown()
def tearDown(self):
for fn in [ test.get('file', False) for test in self.defs ]:
if fn and os.path.exists(fn):
os.remove(fn)
for files in [ test['files'] for test in self.defs ]:
for fn, md5 in files:
if os.path.exists(fn):
os.remove(fn)
### Dinamically generate tests
@ -67,9 +68,6 @@ def generator(test_case):
if not ie._WORKING:
print('Skipping: IE marked as not _WORKING')
return
if not test_case['file']:
print('Skipping: No output file specified')
return
if 'skip' in test_case:
print('Skipping: {0}'.format(test_case['skip']))
return
@ -84,10 +82,11 @@ def generator(test_case):
fd.add_info_extractor(getattr(youtube_dl.InfoExtractors, ien + 'IE')())
fd.download([test_case['url']])
self.assertTrue(os.path.exists(test_case['file']))
if 'md5' in test_case:
md5_for_file = _file_md5(test_case['file'])
self.assertEqual(md5_for_file, test_case['md5'])
for filename, md5 in test_case['files']:
self.assertTrue(os.path.exists(filename))
if md5:
md5_for_file = _file_md5(filename)
self.assertEqual(md5_for_file, md5)
info_dict = fd.processed_info_dicts[0]
for (info_field, value) in test_case.get('info_dict', {}).items():
if value.startswith('md5:'):