|
1 | 1 | """Test server asyncio."""
|
| 2 | +from threading import Thread |
| 3 | +from time import sleep |
2 | 4 | from unittest import mock
|
3 | 5 |
|
4 | 6 | import pytest
|
@@ -30,14 +32,9 @@ async def test_ServerAsyncStop(self):
|
30 | 32 | ModbusBaseServer.active_server = None
|
31 | 33 | with pytest.raises(RuntimeError):
|
32 | 34 | await ServerAsyncStop()
|
33 |
| - ModbusBaseServer.active_server = None |
34 |
| - with pytest.raises(RuntimeError): |
35 |
| - ServerStop() |
36 | 35 | ModbusBaseServer.active_server = mock.AsyncMock()
|
37 | 36 | await ServerAsyncStop()
|
38 |
| - ModbusBaseServer.active_server = mock.AsyncMock() |
39 |
| - ServerStop() |
40 |
| - ModbusBaseServer.active_server = None |
| 37 | + assert not ModbusBaseServer.active_server |
41 | 38 |
|
42 | 39 | @mock.patch('pymodbus.server.ModbusBaseServer.serve_forever')
|
43 | 40 | async def test_StartAsyncSerialServer(self, mock_method):
|
@@ -74,6 +71,18 @@ async def test_StartAsyncUdpServer(self, mock_method):
|
74 | 71 |
|
75 | 72 | def test_ServerStop(self):
|
76 | 73 | """Test ServerStop."""
|
| 74 | + ModbusBaseServer.active_server = None |
| 75 | + with pytest.raises(RuntimeError): |
| 76 | + ServerStop() |
| 77 | + args = (ModbusServerContext(devices=ModbusDeviceContext(), single=True), ) |
| 78 | + kwargs = {"address": ("127.0.0.1", 9118)} |
| 79 | + thread = Thread(target = StartTcpServer, args = args, kwargs=kwargs) |
| 80 | + thread.start() |
| 81 | + while not ModbusBaseServer.active_server: |
| 82 | + sleep(0.1) |
| 83 | + ServerStop() |
| 84 | + assert not ModbusBaseServer.active_server |
| 85 | + thread.join() |
77 | 86 |
|
78 | 87 | @mock.patch('pymodbus.server.ModbusBaseServer.serve_forever')
|
79 | 88 | def test_StartSerialServer(self, mock_method):
|
|
0 commit comments