36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
import unittest
|
|
from unittest.mock import patch
|
|
|
|
from app.sync_agent import _append_detect_result_projection_snapshot
|
|
|
|
|
|
class SyncAgentTests(unittest.TestCase):
|
|
@patch("app.sync_agent.append_detect_result_projection_if_changed")
|
|
def test_append_detect_result_projection_snapshot_uses_active_job_summary(self, mock_append) -> None:
|
|
_append_detect_result_projection_snapshot(
|
|
{
|
|
"job_id": 1,
|
|
"job_code": "detect-20260419030000-abc123",
|
|
"status": "running",
|
|
"items_pending": 12,
|
|
"items_running": 3,
|
|
"items_completed": 8,
|
|
"items_blacklisted": 1,
|
|
"items_failed": 2,
|
|
}
|
|
)
|
|
|
|
mock_append.assert_called_once()
|
|
payload = mock_append.call_args.kwargs["detect"]
|
|
self.assertEqual("running", payload["phase_label"])
|
|
self.assertEqual("detect-20260419030000-abc123", payload["active_job"]["job_code"])
|
|
self.assertEqual(12, payload["progress"]["pending"])
|
|
self.assertEqual(3, payload["progress"]["running"])
|
|
self.assertEqual(8, payload["progress"]["completed"])
|
|
self.assertEqual(1, payload["progress"]["blacklisted"])
|
|
self.assertEqual(2, payload["progress"]["failed"])
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|