feat: ingest mainland detect result events

This commit is contained in:
Your Name
2026-04-19 02:53:43 +08:00
parent 3a55db94f8
commit 4dcbf8ecb3
7 changed files with 600 additions and 71 deletions

View File

@@ -0,0 +1,55 @@
import unittest
from app.services.sync_record_service import _collect_recent_domain_events
class SyncRecordServiceTests(unittest.TestCase):
def test_collect_recent_domain_events_filters_and_keeps_latest_slice(self) -> None:
active_job = {
"current_cycle_events": [
{
"node_code": "mainland-worker-01",
"event_type": "job_dispatch_sent",
"level": "info",
"message": "dispatch",
"created_at": "2026-04-19 01:00:05",
"payload": {"cycle_token": "cycle-1"},
},
{
"node_code": "mainland-worker-01",
"event_type": "domain_completed",
"level": "info",
"message": "完成 a.com",
"created_at": "2026-04-19 01:00:04",
"payload": {"domain": "a.com", "cycle_token": "cycle-1"},
},
{
"node_code": "mainland-worker-01",
"event_type": "domain_started",
"level": "info",
"message": "开始 b.com",
"created_at": "2026-04-19 01:00:03",
"payload": {"domain": "b.com", "cycle_token": "cycle-1"},
},
{
"node_code": "mainland-worker-01",
"event_type": "domain_failed",
"level": "warning",
"message": "失败 c.com",
"created_at": "2026-04-19 01:00:02",
"payload": {"domain": "c.com", "cycle_token": "cycle-1"},
},
]
}
events = _collect_recent_domain_events(active_job, limit=2)
self.assertEqual(2, len(events))
self.assertEqual("domain_started", events[0]["event_type"])
self.assertEqual("b.com", events[0]["payload"]["domain"])
self.assertEqual("domain_completed", events[1]["event_type"])
self.assertEqual("a.com", events[1]["payload"]["domain"])
if __name__ == "__main__":
unittest.main()