Skip to content

Commit 5e593df

Browse files
authored
Activate windows test. (#1448)
1 parent c23c737 commit 5e593df

File tree

2 files changed

+24
-110
lines changed

2 files changed

+24
-110
lines changed

examples/client_test.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,25 @@ async def _execute_diagnostic_requests(client):
8181
# ------------------------
8282
# Run the calls in groups.
8383
# ------------------------
84-
85-
86-
async def run_async_calls(client):
84+
async def run_async_simple_calls(client):
8785
"""Demonstrate basic read/write calls."""
8886
await _handle_coils(client)
8987
await _handle_discrete_input(client)
9088
await _handle_holding_registers(client)
89+
90+
91+
async def run_async_extended_calls(client):
92+
"""Demonstrate basic read/write calls."""
9193
await _execute_information_requests(client)
9294
await _execute_diagnostic_requests(client)
9395

9496

97+
async def run_async_calls(client):
98+
"""Demonstrate basic read/write calls."""
99+
await run_async_simple_calls(client)
100+
await run_async_extended_calls(client)
101+
102+
95103
if __name__ == "__main__":
96104
testclient = setup_async_client(
97105
description="Run modbus calls in asynchronous client."

test/test_example_client_server.py

Lines changed: 13 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -13,63 +13,43 @@
1313
import pytest_asyncio
1414

1515
from examples.client_async import run_async_client, setup_async_client
16-
from examples.client_calls import run_async_calls, run_sync_calls
16+
from examples.client_calls import run_sync_calls
1717
from examples.client_sync import run_sync_client, setup_sync_client
18+
from examples.client_test import run_async_calls as run_async_simple_calls
1819
from examples.helper import get_commandline
1920
from examples.server_async import run_async_server, setup_server
2021
from examples.server_sync import run_sync_server
2122
from pymodbus import pymodbus_apply_logging_config
2223
from pymodbus.server import ServerAsyncStop, ServerStop
23-
from pymodbus.transaction import (
24-
ModbusAsciiFramer,
25-
ModbusBinaryFramer,
26-
ModbusRtuFramer,
27-
ModbusSocketFramer,
28-
ModbusTlsFramer,
29-
)
3024

3125

3226
_logger = logging.getLogger()
3327
_logger.setLevel("DEBUG")
3428
pymodbus_apply_logging_config("DEBUG")
3529
TEST_COMMS_FRAMER = [
3630
("tcp", "socket", 5020),
37-
("tcp", "rtu", 5021),
31+
("tcp", "rtu", 5020),
3832
("tls", "tls", 5020),
3933
("udp", "socket", 5020),
40-
("udp", "rtu", 5021),
41-
("serial", "rtu", 5020),
42-
("serial", "ascii", 5021),
43-
("serial", "binary", 5022),
34+
("udp", "rtu", 5020),
35+
("serial", "rtu", "socket://127.0.0.1:5020"),
36+
# awaiting fix: ("serial", "ascii", "socket://127.0.0.1:5020"),
37+
# awaiting fix: ("serial", "binary", "socket://127.0.0.1:5020"),
4438
]
45-
TEST_CONVERT_FRAMER = {
46-
"socket": ModbusSocketFramer,
47-
"rtu": ModbusRtuFramer,
48-
"tls": ModbusTlsFramer,
49-
"ascii": ModbusAsciiFramer,
50-
"binary": ModbusBinaryFramer,
51-
}
5239

5340

5441
@pytest_asyncio.fixture(name="mock_run_server")
5542
async def _helper_server(
5643
test_comm,
5744
test_framer,
58-
test_port_offset,
5945
test_port,
6046
):
6147
"""Run server."""
62-
if pytest.IS_WINDOWS and test_comm == "serial":
63-
yield
64-
return
65-
port = test_port + test_port_offset
66-
if test_comm == "serial":
67-
port = f"socket://127.0.0.1:{port}"
6848
cmdline = [
6949
"--comm",
7050
test_comm,
7151
"--port",
72-
str(port),
52+
str(test_port),
7353
"--framer",
7454
test_framer,
7555
"--baudrate",
@@ -86,37 +66,6 @@ async def _helper_server(
8666
await task
8767

8868

89-
async def run_client(test_comm, test_type, port=None, cmdline=None):
90-
"""Help run async client."""
91-
if not cmdline:
92-
cmdline = [
93-
"--comm",
94-
test_comm,
95-
"--host",
96-
"127.0.0.1",
97-
"--baudrate",
98-
"9600",
99-
"--log",
100-
"debug",
101-
]
102-
if test_comm == "serial":
103-
port = f"socket://127.0.0.1:{port}"
104-
105-
cmdline.extend(
106-
[
107-
"--port",
108-
str(port),
109-
]
110-
)
111-
112-
test_client = setup_async_client(cmdline=cmdline)
113-
if not test_type:
114-
await run_async_client(test_client)
115-
else:
116-
await run_async_client(test_client, modbus_calls=test_type)
117-
await asyncio.sleep(0.1)
118-
119-
12069
def test_get_commandline():
12170
"""Test helper get_commandline()"""
12271
args = get_commandline(cmdline=["--log", "info"])
@@ -125,56 +74,46 @@ def test_get_commandline():
12574

12675

12776
@pytest.mark.xdist_group(name="server_serialize")
128-
@pytest.mark.parametrize("test_port_offset", [10])
12977
@pytest.mark.parametrize("test_comm, test_framer, test_port", TEST_COMMS_FRAMER)
13078
async def test_exp_async_server_client(
13179
test_comm,
13280
test_framer,
133-
test_port_offset,
13481
test_port,
13582
mock_run_server,
13683
):
13784
"""Run async client and server."""
138-
# JAN WAITING
139-
if pytest.IS_WINDOWS and test_comm == "serial":
140-
return
141-
if test_comm in {"tcp", "tls"}:
142-
return
14385
assert not mock_run_server
144-
145-
port = test_port + test_port_offset
14686
cmdline = [
14787
"--comm",
14888
test_comm,
14989
"--host",
15090
"127.0.0.1",
15191
"--framer",
15292
test_framer,
93+
"--port",
94+
str(test_port),
15395
"--baudrate",
15496
"9600",
15597
"--log",
15698
"debug",
15799
]
158-
159-
await run_client(test_comm, None, port=port, cmdline=cmdline)
100+
test_client = setup_async_client(cmdline=cmdline)
101+
await run_async_client(test_client, modbus_calls=run_async_simple_calls)
160102

161103

162104
@pytest.mark.xdist_group(name="server_serialize")
163-
@pytest.mark.parametrize("test_port_offset", [20])
164105
@pytest.mark.parametrize("test_comm, test_framer, test_port", [TEST_COMMS_FRAMER[0]])
165106
def test_exp_sync_server_client(
166107
test_comm,
167108
test_framer,
168-
test_port_offset,
169109
test_port,
170110
):
171111
"""Run sync client and server."""
172-
port = test_port + test_port_offset
173112
cmdline = [
174113
"--comm",
175114
test_comm,
176115
"--port",
177-
str(port),
116+
str(test_port),
178117
"--baudrate",
179118
"9600",
180119
"--log",
@@ -190,36 +129,3 @@ def test_exp_sync_server_client(
190129
test_client = setup_sync_client(cmdline=cmdline)
191130
run_sync_client(test_client, modbus_calls=run_sync_calls)
192131
ServerStop()
193-
194-
195-
# JAN
196-
@pytest.mark.xdist_group(name="server_serialize")
197-
@pytest.mark.parametrize("test_port_offset", [30])
198-
@pytest.mark.parametrize("test_comm, test_framer, test_port", TEST_COMMS_FRAMER)
199-
async def xtest_exp_framers_calls(
200-
test_comm,
201-
test_framer,
202-
test_port_offset,
203-
test_port,
204-
mock_run_server,
205-
):
206-
"""Test client-server async with different framers and calls."""
207-
assert not mock_run_server
208-
if test_comm == "serial" and test_framer in (ModbusAsciiFramer, ModbusBinaryFramer):
209-
return
210-
if pytest.IS_WINDOWS and test_comm == "serial":
211-
return
212-
port = test_port + test_port_offset
213-
cmdline = [
214-
"--comm",
215-
test_comm,
216-
"--host",
217-
"127.0.0.1",
218-
"--framer",
219-
test_framer,
220-
"--baudrate",
221-
"9600",
222-
"--log",
223-
"debug",
224-
]
225-
await run_client(test_comm, run_async_calls, port=port, cmdline=cmdline)

0 commit comments

Comments
 (0)