import sys import unittest from pathlib import Path PROJECT_ROOT = Path(__file__).resolve().parents[2] DOMAINCHECK_ROOT = PROJECT_ROOT / "domainCheck" if str(DOMAINCHECK_ROOT) not in sys.path: sys.path.insert(0, str(DOMAINCHECK_ROOT)) from app.utils.detection_results import ( build_manual_detection_result, normalize_detector_result, resolve_detection_status, ) class DetectionResultSchemaTests(unittest.TestCase): def test_resolve_detection_status_supports_legacy_key(self): self.assertTrue(resolve_detection_status({"has_收录": True}, "has_收录")) self.assertFalse(resolve_detection_status({"has_history": False}, "has_history")) def test_manual_detection_result_preserves_legacy_key(self): result = build_manual_detection_result(True, legacy_key="has_收录") self.assertTrue(result["status"]) self.assertTrue(result["has_收录"]) self.assertEqual("manual", result["state"]) def test_normalize_jucha_info_bubbles_nested_error(self): normalized = normalize_detector_result( "jucha_info", { "whois": {"error": "HTTP 403"}, "beian": {"has_beian": False, "beian_year": "", "is_enterprise": False, "beian_match": False}, "intercept": {"normal": True}, }, ) self.assertEqual("HTTP 403", normalized["error"]) self.assertEqual("error", normalized["state"]) if __name__ == "__main__": unittest.main()