Files
getDomain/domain-api/tests/test_detect_service_remote_logs.py

63 lines
2.2 KiB
Python

from __future__ import annotations
import unittest
from unittest.mock import patch
from app.services import detect_service
class DetectServiceRemoteLogsTests(unittest.TestCase):
@patch("app.services.detect_service.list_debug_events")
def test_build_remote_log_snapshot_from_debug_events_filters_to_active_job_identity(self, mock_list_debug_events) -> None:
mock_list_debug_events.return_value = {
"records": [
{
"id": 3,
"node_code": "mainland-controller-01-a",
"event_type": "worker_log",
"message": "旧任务日志",
"created_at": "2026-04-23 16:00:00",
"payload": {
"job_id": 10,
"job_code": "sync-overseas-10",
"cycle_token": "cycle-old",
"log_mode": "key",
},
},
{
"id": 4,
"node_code": "mainland-controller-01-a",
"event_type": "worker_log",
"message": "当前任务日志",
"created_at": "2026-04-23 16:01:00",
"payload": {
"job_id": 12,
"job_code": "sync-overseas-12",
"cycle_token": "cycle-12",
"log_mode": "key",
},
},
]
}
snapshot = detect_service._build_remote_log_snapshot_from_debug_events(
{
"job_id": 12,
"job_code": "sync-overseas-12",
"runtime_job_code": "sync-overseas-12",
"current_cycle_token": "cycle-12",
"node_stats": [{"node_code": "mainland-controller-01-a"}],
},
enabled=True,
mode="key",
limit=20,
)
self.assertEqual(1, snapshot["line_count"])
self.assertIn("当前任务日志", snapshot["lines"][0])
self.assertNotIn("旧任务日志", "\n".join(snapshot["lines"]))
if __name__ == "__main__":
unittest.main()