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()