test_audit_unavailable_research.py 1.7 KB

1234567891011121314151617181920212223242526272829
  1. import importlib.util
  2. from pathlib import Path
  3. import unittest
  4. spec = importlib.util.spec_from_file_location('audit', Path(__file__).with_name('audit-unavailable-research.py'))
  5. m = importlib.util.module_from_spec(spec)
  6. spec.loader.exec_module(m)
  7. class SourceAvailabilityTests(unittest.TestCase):
  8. def test_invisible_or_blocked_is_not_deleted(self):
  9. self.assertEqual(m.official_bili_state({'code': 62002, 'message': '稿件不可见'}, 200), 'ACCESS_RESTRICTED_NOT_CONFIRMED_REMOVED')
  10. self.assertEqual(m.official_bili_state({'code': -404}, 403), 'ACCESS_RESTRICTED_NOT_CONFIRMED_REMOVED')
  11. def test_empty_video_description_still_has_source(self):
  12. self.assertEqual(m.official_bili_state({'code': 0, 'data': {'bvid': 'BVx', 'desc': '', 'cid': 1}}, 200), 'SOURCE_RECORD_EXISTS')
  13. def test_proxy_no_video_needs_official_confirmation(self):
  14. self.assertEqual(m.official_bili_state({'message': 'NO VIDEO'}, 200), 'UNCONFIRMED_RESPONSE')
  15. self.assertEqual(m.official_bili_state({'code': -404, 'message': '啥都木有'}, 200), 'OFFICIAL_NOT_FOUND_REQUIRES_PAGE_CONFIRMATION')
  16. def test_page_error_must_be_visible_and_bound_to_original_link(self):
  17. meta = {'httpStatus': 200, 'finalUrl': 'https://www.bilibili.com/video/BVx'}
  18. self.assertTrue(m.page_confirms_removed('<main>视频已被删除</main>'.encode(), meta, 'BVx'))
  19. self.assertFalse(m.page_confirms_removed('<script>视频已被删除</script>'.encode(), meta, 'BVx'))
  20. self.assertFalse(m.page_confirms_removed('<main>视频已被删除</main>'.encode(), {**meta, 'finalUrl': 'https://passport.bilibili.com/login'}, 'BVx'))
  21. if __name__ == '__main__': unittest.main()