diff --git a/test/test_download.py b/test/test_download.py index 114ff1783..bce0e4fcd 100644 --- a/test/test_download.py +++ b/test/test_download.py @@ -49,13 +49,14 @@ class TestDownload(unittest.TestCase): self.tearDown() def tearDown(self): - for test in self.defs: - fn = test['file'] + for fn in [ test.get('file', False) for test in self.defs ]: if fn and os.path.exists(fn): os.remove(fn) -def make_test_method(test_case): +### Dinamically generate tests +def generator(test_case): + def test_template(self): ie = getattr(youtube_dl.InfoExtractors, test_case['name'] + 'IE') if not ie._WORKING: @@ -80,13 +81,14 @@ def make_test_method(test_case): md5_for_file = _file_md5(test_case['file']) self.assertEqual(md5_for_file, test_case['md5']) - # TODO proper skipping annotations return test_template +### And add them to TestDownload for test_case in defs: - test_method = make_test_method(test_case) + test_method = generator(test_case) test_method.__name__ = "test_{0}".format(test_case["name"]) setattr(TestDownload, test_method.__name__, test_method) + del test_method if __name__ == '__main__':