| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- from __future__ import annotations
- import unittest
- from unittest.mock import patch
- from data_collector_mcp import gateway_api
- class GatewayApiTests(unittest.TestCase):
- def test_modbus_point_collect_test_posts_gateway_payload(self) -> None:
- response = {"code": 0, "msg": "success", "data": {"points": []}}
- with patch(
- "data_collector_mcp.gateway_api.find_project_config",
- return_value={"project_key": "dev-01", "base_url": "http://gateway.test"},
- ), patch(
- "data_collector_mcp.gateway_api.request_json",
- return_value=response,
- ) as request_json:
- result = gateway_api.modbus_point_collect_test(
- "dev-01",
- ip="192.168.1.10",
- port=502,
- slave_id=1,
- points=[{"function_code": 3, "address": 7, "type": "int16"}],
- )
- self.assertEqual(result, response)
- request_json.assert_called_once_with(
- "POST",
- "http://gateway.test/api/dc-gateway/modbus/read_points",
- json_payload={
- "device_type": "ModbusTCP",
- "ip": "192.168.1.10",
- "port": 502,
- "word_byte_order": "ABCD",
- "address_base": 0,
- "slave_id": 1,
- "points": [{"function_code": 3, "address": 7, "type": "int16"}],
- },
- )
- def test_modbus_point_collect_test_keeps_custom_word_byte_order(self) -> None:
- with patch(
- "data_collector_mcp.gateway_api.find_project_config",
- return_value={"project_key": "dev-01", "base_url": "http://gateway.test"},
- ), patch(
- "data_collector_mcp.gateway_api.request_json",
- return_value={"code": 0},
- ) as request_json:
- gateway_api.modbus_point_collect_test(
- "dev-01",
- ip="192.168.1.10",
- port=502,
- slave_id=1,
- word_byte_order="DCBA",
- address_base=1,
- points=[{"function_code": 4, "address": 0, "type": "float32"}],
- )
- payload = request_json.call_args.kwargs["json_payload"]
- self.assertEqual(payload["word_byte_order"], "DCBA")
- self.assertEqual(payload["address_base"], 1)
- if __name__ == "__main__":
- unittest.main()
|