Skip to content

Commit be3988a

Browse files
committed
nullmodem errors.
1 parent ccce9e7 commit be3988a

File tree

2 files changed

+26
-19
lines changed

2 files changed

+26
-19
lines changed

pymodbus/transport/transport.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,9 @@ def is_active(self) -> bool:
332332
# ---------------- #
333333
async def create_nullmodem(self):
334334
"""Bypass create_ and use null modem"""
335-
new_transport = NullModem(self.is_server, self)
335+
new_transport = NullModem(self.is_server, None)
336336
new_protocol = self.handle_new_connection()
337+
new_transport.protocol = new_protocol
337338
new_protocol.connection_made(new_transport)
338339
self.connection_made(self.transport)
339340
return new_transport, new_protocol

test/sub_transport/test_comm.py

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -176,8 +176,9 @@ async def test_single_connection(self, server, client):
176176
"""Test single connection."""
177177
await server.transport_listen()
178178
await client.transport_connect()
179-
assert server.transport.protocol == server
180-
assert server.transport.other == client.transport
179+
server_obj = list(server.active_connections.values())[0]
180+
assert server.transport.protocol == server_obj
181+
assert server_obj.transport.other == client.transport
181182
assert client.transport.listening == -1
182183
assert client.transport.protocol == client
183184
assert client.transport.other == server.transport
@@ -188,31 +189,34 @@ async def test_single_flow(self, server, client):
188189
"""Test single connection."""
189190
await server.transport_listen()
190191
await client.transport_connect()
191-
server.callback_data = mock.Mock(return_value=0)
192+
server_obj = list(server.active_connections.values())[0]
193+
server_obj.callback_data = mock.Mock(return_value=0)
192194
client.callback_data = mock.Mock(return_value=0)
193195
test_data = b"abcd"
194196
test_data2 = b"efgh"
195197
client.transport_send(test_data)
196-
server.transport_send(test_data2)
197-
assert server.recv_buffer == test_data
198+
server_obj.transport_send(test_data2)
199+
assert server_obj.recv_buffer == test_data
198200
assert client.recv_buffer == test_data2
199201
client.callback_data.assert_called_once()
200-
server.callback_data.assert_called_once()
202+
server_obj.callback_data.assert_called_once()
201203

202204
@pytest.mark.parametrize("use_host", [NULLMODEM_HOST])
203205
async def test_multi_connection(self, server, client):
204206
"""Test single connection."""
205207
await server.transport_listen()
206208
await client.transport_connect()
209+
server_obj = list(server.active_connections.values())[0]
207210
server2 = Transport(server.comm_params, True)
208211
client2 = Transport(client.comm_params, False)
209212
await server2.transport_listen()
210213
await client2.transport_connect()
214+
server2_obj = list(server2.active_connections.values())[0]
211215

212-
assert server.transport.protocol == server
213-
assert server.transport.other == client.transport
214-
assert server2.transport.protocol == server2
215-
assert server2.transport.other == client2.transport
216+
assert server.transport.protocol == server_obj
217+
assert server_obj.transport.other == client.transport
218+
assert server2.transport.protocol == server2_obj
219+
assert server2_obj.transport.other == client2.transport
216220
assert client.transport.protocol == client
217221
assert client.transport.other == server.transport
218222
assert client2.transport.protocol == client2
@@ -226,27 +230,29 @@ async def test_triangle_flow(self, server, client):
226230
"""Test single connection."""
227231
await server.transport_listen()
228232
await client.transport_connect()
233+
server_obj = list(server.active_connections.values())[0]
229234
server2 = Transport(server.comm_params, True)
230235
client2 = Transport(client.comm_params, False)
231236
await server2.transport_listen()
232237
await client2.transport_connect()
233-
server.callback_data = mock.Mock(return_value=0)
238+
server2_obj = list(server2.active_connections.values())[0]
239+
server_obj.callback_data = mock.Mock(return_value=0)
234240
client.callback_data = mock.Mock(return_value=0)
235241
client2.callback_data = mock.Mock(return_value=0)
236-
server2.callback_data = mock.Mock(return_value=0)
242+
server2_obj.callback_data = mock.Mock(return_value=0)
237243
test_data = b"abcd"
238244
test_data2 = b"efgh"
239245
test_data3 = b"ijkl"
240246
test_data4 = b"mnop"
241247
client.transport_send(test_data)
242248
client2.transport_send(test_data2)
243-
server.transport_send(test_data3)
244-
server2.transport_send(test_data4)
245-
assert server.recv_buffer == test_data
246-
assert server2.recv_buffer == test_data2
249+
server_obj.transport_send(test_data3)
250+
server2_obj.transport_send(test_data4)
251+
assert server_obj.recv_buffer == test_data
252+
assert server2_obj.recv_buffer == test_data2
247253
assert client.recv_buffer == test_data3
248254
assert client2.recv_buffer == test_data4
249255
client.callback_data.assert_called_once()
250256
client2.callback_data.assert_called_once()
251-
server.callback_data.assert_called_once()
252-
server2.callback_data.assert_called_once()
257+
server_obj.callback_data.assert_called_once()
258+
server2_obj.callback_data.assert_called_once()

0 commit comments

Comments
 (0)