45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
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()
|