| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import unittest
- from pydantic import ValidationError
- from app.schemas.modbus import ModbusRawReadRequest
- class ModbusSchemaTest(unittest.TestCase):
- def test_device_type_defaults_to_modbus_tcp(self):
- request = ModbusRawReadRequest(
- ip="192.168.75.248",
- port=5512,
- read={"function_code": 3, "address": 0, "quantity": 10},
- )
- self.assertEqual("ModbusTCP", request.device_type)
- def test_port_is_required(self):
- with self.assertRaises(ValidationError) as context:
- ModbusRawReadRequest(
- ip="192.168.75.248",
- read={"function_code": 3, "address": 0, "quantity": 10},
- )
- self.assertIn("port", str(context.exception))
- def test_ip_must_be_valid_address(self):
- with self.assertRaises(ValidationError) as context:
- ModbusRawReadRequest(
- ip="not-an-ip",
- port=5512,
- read={"function_code": 3, "address": 0, "quantity": 10},
- )
- self.assertIn("ip must be a valid IP address", str(context.exception))
- if __name__ == "__main__":
- unittest.main()
|