import importlib.util from pathlib import Path import unittest spec = importlib.util.spec_from_file_location('audit', Path(__file__).with_name('audit-unavailable-research.py')) m = importlib.util.module_from_spec(spec) spec.loader.exec_module(m) class SourceAvailabilityTests(unittest.TestCase): def test_invisible_or_blocked_is_not_deleted(self): self.assertEqual(m.official_bili_state({'code': 62002, 'message': '稿件不可见'}, 200), 'ACCESS_RESTRICTED_NOT_CONFIRMED_REMOVED') self.assertEqual(m.official_bili_state({'code': -404}, 403), 'ACCESS_RESTRICTED_NOT_CONFIRMED_REMOVED') def test_empty_video_description_still_has_source(self): self.assertEqual(m.official_bili_state({'code': 0, 'data': {'bvid': 'BVx', 'desc': '', 'cid': 1}}, 200), 'SOURCE_RECORD_EXISTS') def test_proxy_no_video_needs_official_confirmation(self): self.assertEqual(m.official_bili_state({'message': 'NO VIDEO'}, 200), 'UNCONFIRMED_RESPONSE') self.assertEqual(m.official_bili_state({'code': -404, 'message': '啥都木有'}, 200), 'OFFICIAL_NOT_FOUND_REQUIRES_PAGE_CONFIRMATION') def test_page_error_must_be_visible_and_bound_to_original_link(self): meta = {'httpStatus': 200, 'finalUrl': 'https://www.bilibili.com/video/BVx'} self.assertTrue(m.page_confirms_removed('
视频已被删除
'.encode(), meta, 'BVx')) self.assertFalse(m.page_confirms_removed(''.encode(), meta, 'BVx')) self.assertFalse(m.page_confirms_removed('
视频已被删除
'.encode(), {**meta, 'finalUrl': 'https://passport.bilibili.com/login'}, 'BVx')) if __name__ == '__main__': unittest.main()