63 lines
2.2 KiB
Python
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()
|