Преглед изворни кода

[test_download] Fix testing playlists with single video and add comments

Sergey M․ пре 8 година
родитељ
комит
364a69e8c6
1 измењених фајлова са 10 додато и 2 уклоњено
  1. 10 2
      test/test_download.py

+ 10 - 2
test/test_download.py

@@ -199,9 +199,16 @@ def generator(test_case, tname):
                 self.assertEqual(
                 self.assertEqual(
                     test_case['playlist_duration_sum'], got_duration)
                     test_case['playlist_duration_sum'], got_duration)
 
 
+            # Generalize both playlists and single videos to unified format for
+            # simplicity
+            if 'entries' not in res_dict:
+                res_dict['entries'] = [res_dict]
+
             for tc_num, tc in enumerate(test_cases):
             for tc_num, tc in enumerate(test_cases):
-                tc_res_dict = res_dict['entries'][tc_num] if is_playlist else res_dict
+                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', {}))
                 expect_info_dict(self, tc_res_dict, tc.get('info_dict', {}))
+                # Now, check downloaded file consistency
                 tc_filename = get_tc_filename(tc)
                 tc_filename = get_tc_filename(tc)
                 if not test_case.get('params', {}).get('skip_download', False):
                 if not test_case.get('params', {}).get('skip_download', False):
                     self.assertTrue(os.path.exists(tc_filename), msg='Missing file ' + tc_filename)
                     self.assertTrue(os.path.exists(tc_filename), msg='Missing file ' + tc_filename)
@@ -219,13 +226,14 @@ def generator(test_case, tname):
                     if 'md5' in tc:
                     if 'md5' in tc:
                         md5_for_file = _file_md5(tc_filename)
                         md5_for_file = _file_md5(tc_filename)
                         self.assertEqual(md5_for_file, tc['md5'])
                         self.assertEqual(md5_for_file, tc['md5'])
+                # Finally, check test cases' data again but this time against
+                # extracted data from info JSON file written during processing
                 info_json_fn = os.path.splitext(tc_filename)[0] + '.info.json'
                 info_json_fn = os.path.splitext(tc_filename)[0] + '.info.json'
                 self.assertTrue(
                 self.assertTrue(
                     os.path.exists(info_json_fn),
                     os.path.exists(info_json_fn),
                     'Missing info file %s' % info_json_fn)
                     'Missing info file %s' % info_json_fn)
                 with io.open(info_json_fn, encoding='utf-8') as infof:
                 with io.open(info_json_fn, encoding='utf-8') as infof:
                     info_dict = json.load(infof)
                     info_dict = json.load(infof)
-
                 expect_info_dict(self, info_dict, tc.get('info_dict', {}))
                 expect_info_dict(self, info_dict, tc.get('info_dict', {}))
         finally:
         finally:
             try_rm_tcs_files()
             try_rm_tcs_files()