1717from pymodbus .server .sync import StartTcpServer , StartUdpServer , StartSerialServer
1818from pymodbus .exceptions import NotImplementedException
1919from pymodbus .bit_read_message import ReadCoilsRequest , ReadCoilsResponse
20+ from pymodbus .datastore import ModbusServerContext
2021import sys
2122from pymodbus .compat import socketserver
2223
@@ -97,6 +98,8 @@ def testModbusSingleRequestHandlerHandle(self):
9798 handler .framer = Mock ()
9899 handler .framer .buildPacket .return_value = b"message"
99100 handler .request = Mock ()
101+ handler .socket = Mock ()
102+ handler .server = Mock ()
100103 handler .request .recv .return_value = b"\x12 \x34 "
101104
102105 # exit if we are not running
@@ -109,6 +112,8 @@ def _callback1(a, b):
109112 handler .running = False # stop infinite loop
110113 handler .framer .processIncomingPacket .side_effect = _callback1
111114 handler .running = True
115+ # Ugly hack
116+ handler .server .context = ModbusServerContext (slaves = {18 : None }, single = False )
112117 handler .handle ()
113118 self .assertEqual (handler .framer .processIncomingPacket .call_count , 1 )
114119
@@ -128,7 +133,7 @@ def _callback2(a, b):
128133 def testModbusConnectedRequestHandlerSend (self ):
129134 handler = socketserver .BaseRequestHandler (None , None , None )
130135 handler .__class__ = ModbusConnectedRequestHandler
131- handler .framer = Mock ()
136+ handler .framer = Mock ()
132137 handler .framer .buildPacket .return_value = b"message"
133138 handler .request = Mock ()
134139 request = ReadCoilsResponse ([1 ])
@@ -187,13 +192,14 @@ def testModbusDisconnectedRequestHandlerSend(self):
187192 handler .framer = Mock ()
188193 handler .framer .buildPacket .return_value = b"message"
189194 handler .request = Mock ()
195+ handler .socket = Mock ()
190196 request = ReadCoilsResponse ([1 ])
191197 handler .send (request )
192- self .assertEqual (handler .request .sendto .call_count , 1 )
198+ self .assertEqual (handler .socket .sendto .call_count , 1 )
193199
194200 request .should_respond = False
195201 handler .send (request )
196- self .assertEqual (handler .request .sendto .call_count , 1 )
202+ self .assertEqual (handler .socket .sendto .call_count , 1 )
197203
198204 def testModbusDisconnectedRequestHandlerHandle (self ):
199205 handler = socketserver .BaseRequestHandler (None , None , None )
0 commit comments