38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
from __future__ import annotations
|
|
|
|
import unittest
|
|
from unittest.mock import patch
|
|
|
|
from app.services.runtime_control_service import runtime_action
|
|
|
|
|
|
class RuntimeControlServiceTests(unittest.TestCase):
|
|
@patch("app.services.runtime_control_service._emit_runtime_action_event")
|
|
@patch("app.services.runtime_control_service.send_worker_command")
|
|
def test_runtime_action_stop_detection_forwards_target_payload(
|
|
self,
|
|
mock_send_worker_command,
|
|
_mock_emit_runtime_action_event,
|
|
) -> None:
|
|
mock_send_worker_command.return_value = (True, "已发送 Worker 控制指令")
|
|
|
|
ok, message, data = runtime_action(
|
|
"stop_detection",
|
|
payload={"target_node_codes": ["mainland-controller-01-a", "mainland-controller-01-b"]},
|
|
)
|
|
|
|
self.assertTrue(ok)
|
|
self.assertEqual("已发送 Worker 控制指令", message)
|
|
mock_send_worker_command.assert_called_once_with(
|
|
"stop_detection",
|
|
payload={"target_node_codes": ["mainland-controller-01-a", "mainland-controller-01-b"]},
|
|
)
|
|
self.assertEqual(
|
|
["mainland-controller-01-a", "mainland-controller-01-b"],
|
|
data["payload"]["target_node_codes"],
|
|
)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|