Skip to content

Commit

Permalink
Release corrections. (#1586)
Browse files Browse the repository at this point in the history
  • Loading branch information
janiversen authored Jun 6, 2023
1 parent efbc6ec commit fd2a1c4
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 21 deletions.
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Supported versions

Version `2.5.3 <https://github.com/pymodbus-dev/pymodbus/releases/tag/v2.5.3>`_ is the last 2.x release (Supports python >= 2.7, no longer supported).

Version `3.3.0 <https://github.com/pymodbus-dev/pymodbus/releases/tag/v3.3.1>`_ is the current release (Supports Python >= 3.8).
Version `3.3.1 <https://github.com/pymodbus-dev/pymodbus/releases/tag/v3.3.1>`_ is the current release (Supports Python >= 3.8).

.. important::
All API changes after 3.0.0 are documented in `API_changes.rst <https://github.com/pymodbus-dev/pymodbus/blob/dev/API_changes.rst>`_
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Pymodbus Simulator Example.
"""Pymodbus datastore simulator Example.
An example of using simulator datastore with json interface.
Expand All @@ -17,6 +17,8 @@
The corresponding client can be started as:
python3 client_sync.py
.. tip:: This is NOT the pymodbus simulator, that is started as pymodbus.simulator.
"""
import argparse
import asyncio
Expand Down
2 changes: 1 addition & 1 deletion test/test_examples.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@
from examples.client_custom_msg import run_custom_client
from examples.client_payload import run_payload_calls
from examples.client_test import run_async_calls as run_client_test
from examples.datastore_simulator import run_server_simulator, setup_simulator
from examples.message_generator import generate_messages
from examples.message_parser import parse_messages
from examples.server_async import run_async_server, setup_server
from examples.server_callback import run_callback_server
from examples.server_payload import setup_payload_server
from examples.server_simulator import run_server_simulator, setup_simulator
from examples.server_updating import run_updating_server, setup_updating_server
from pymodbus import pymodbus_apply_logging_config
from pymodbus.server import ServerAsyncStop
Expand Down
38 changes: 20 additions & 18 deletions test/transport/test_reconnect.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,53 +12,55 @@ class TestReconnectTransport:
async def test_no_reconnect_call(self, transport, commparams):
"""Test connection_lost()."""
transport.setup_tcp(False, "localhost", BASE_PORT + 1)
transport.call_connect_listen = mock.AsyncMock(return_value=(None, None))
mocker = mock.AsyncMock(return_value=(None, None))
transport.loop.create_connection = mocker
transport.connection_made(mock.Mock())
assert not transport.call_connect_listen.call_count
assert not mocker.call_count
assert transport.reconnect_delay_current == commparams.reconnect_delay
transport.connection_lost(RuntimeError("Connection lost"))
assert not transport.call_connect_listen.call_count
assert not mocker.call_count
assert transport.reconnect_delay_current == commparams.reconnect_delay
transport.close()

async def test_reconnect_call(self, transport, commparams):
"""Test connection_lost()."""
transport.setup_tcp(False, "localhost", BASE_PORT + 2)
transport.call_connect_listen = mock.AsyncMock(return_value=(None, None))
mocker = mock.AsyncMock(return_value=(None, None))
transport.loop.create_connection = mocker
transport.connection_made(mock.Mock())
transport.connection_lost(RuntimeError("Connection lost"))
await asyncio.sleep(transport.reconnect_delay_current * 1.2)
assert transport.call_connect_listen.call_count == 1
await asyncio.sleep(transport.reconnect_delay_current * 1.8)
assert mocker.call_count == 1
assert transport.reconnect_delay_current == commparams.reconnect_delay * 2
transport.close()

async def test_multi_reconnect_call(self, transport, commparams):
"""Test connection_lost()."""
transport.setup_tcp(False, "localhost", BASE_PORT + 3)
transport.call_connect_listen = mock.AsyncMock(return_value=(None, None))
mocker = mock.AsyncMock(return_value=(None, None))
transport.loop.create_connection = mocker
transport.connection_made(mock.Mock())
transport.connection_lost(RuntimeError("Connection lost"))
await asyncio.sleep(transport.reconnect_delay_current * 1.2)
assert transport.call_connect_listen.call_count == 1
await asyncio.sleep(transport.reconnect_delay_current * 1.8)
assert mocker.call_count == 1
assert transport.reconnect_delay_current == commparams.reconnect_delay * 2
await asyncio.sleep(transport.reconnect_delay_current * 1.2)
assert transport.call_connect_listen.call_count == 2
await asyncio.sleep(transport.reconnect_delay_current * 1.8)
assert mocker.call_count == 2
assert transport.reconnect_delay_current == commparams.reconnect_delay_max
await asyncio.sleep(transport.reconnect_delay_current * 1.2)
assert transport.call_connect_listen.call_count == 3
await asyncio.sleep(transport.reconnect_delay_current * 1.8)
assert mocker.call_count >= 3
assert transport.reconnect_delay_current == commparams.reconnect_delay_max
transport.close()

async def test_reconnect_call_ok(self, transport, commparams):
"""Test connection_lost()."""
transport.setup_tcp(False, "localhost", BASE_PORT + 4)
transport.call_connect_listen = mock.AsyncMock(
return_value=(mock.Mock(), mock.Mock())
)
mocker = mock.AsyncMock(return_value=(mock.Mock(), mock.Mock()))
transport.loop.create_connection = mocker
transport.connection_made(mock.Mock())
transport.connection_lost(RuntimeError("Connection lost"))
await asyncio.sleep(transport.reconnect_delay_current * 1.2)
assert transport.call_connect_listen.call_count == 1
await asyncio.sleep(transport.reconnect_delay_current * 1.8)
assert mocker.call_count == 1
assert transport.reconnect_delay_current == commparams.reconnect_delay * 2
assert not transport.reconnect_task
transport.close()

0 comments on commit fd2a1c4

Please sign in to comment.