Source: pymodbus Version: 3.0.0-5 Severity: serious Justification: FTBFS Tags: bookworm sid ftbfs User: [email protected] Usertags: ftbfs-20230113 ftbfs-bookworm
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > make[1]: Entering directory '/<<PKGBUILDDIR>>' > PYTHONPATH=/<<PKGBUILDDIR>> dh_auto_test > I: pybuild base:240: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build; python3.11 -m pytest > test > ============================= test session starts > ============================== > platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack > rootdir: /<<PKGBUILDDIR>>, configfile: setup.cfg > plugins: cov-4.0.0, asyncio-0.20.3 > asyncio: mode=Mode.AUTO > collected 443 items > > test/test_all_messages.py ... [ > 0%] > test/test_bit_read_messages.py ......... [ > 2%] > test/test_bit_write_messages.py ......... [ > 4%] > test/test_client.py .................................................... [ > 16%] > .. [ > 16%] > test/test_client_sync.py ............................ [ > 23%] > test/test_client_sync_diag.py ..... [ > 24%] > test/test_datastore.py ............................... [ > 31%] > test/test_device.py ..................... [ > 36%] > test/test_diag_messages.py ......... [ > 38%] > test/test_events.py ...... [ > 39%] > test/test_examples.py .......................FF.....F.... [ > 47%] > test/test_exceptions.py . [ > 47%] > test/test_factory.py ........... [ > 50%] > test/test_file_message.py ....................... [ > 55%] > test/test_framers.py ................................................. [ > 66%] > test/test_interfaces.py ..... [ > 67%] > test/test_mei_messages.py ........ [ > 69%] > test/test_other_messages.py ....... [ > 70%] > test/test_payload.py ......... [ > 72%] > test/test_pdu.py .... [ > 73%] > test/test_register_read_messages.py ........... [ > 76%] > test/test_register_write_messages.py ............ [ > 79%] > test/test_remote_datastore.py .... [ > 79%] > test/test_repl_client.py .. [ > 80%] > test/test_server_asyncio.py ....FE...........FEFEFEFEFE.FE [ > 85%] > test/test_server_context.py ........... [ > 88%] > test/test_transaction.py .............................................. [ > 98%] > test/test_utilities.py ..... [ > 99%] > test/test_version.py .. > [100%] > > ==================================== ERRORS > ==================================== > ______ ERROR at teardown of AsyncioServerTest.test_async_start_udp_server > ______ > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_start_udp_server> > > async def asyncTearDown(self): > """Clean up the test environment""" > if self.server is not None: > await self.server.server_close() > self.server = None > if self.task is not None: > await asyncio.sleep(0.1) > if not self.task.cancelled(): > self.task.cancel() > try: > > await self.task > E TypeError: BaseEventLoop.create_datagram_endpoint() got > an unexpected keyword argument 'reuse_address' > > test/test_server_asyncio.py:142: TypeError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > ---------------------------- Captured log teardown > ----------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ____ ERROR at teardown of AsyncioServerTest.test_async_udp_server_exception > ____ > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_exception> > > async def asyncTearDown(self): > """Clean up the test environment""" > if self.server is not None: > await self.server.server_close() > self.server = None > if self.task is not None: > await asyncio.sleep(0.1) > if not self.task.cancelled(): > self.task.cancel() > try: > > await self.task > E TypeError: BaseEventLoop.create_datagram_endpoint() got > an unexpected keyword argument 'reuse_address' > > test/test_server_asyncio.py:142: TypeError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > ---------------------------- Captured log teardown > ----------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > __ ERROR at teardown of AsyncioServerTest.test_async_udp_server_receive_data > ___ > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_receive_data> > > async def asyncTearDown(self): > """Clean up the test environment""" > if self.server is not None: > await self.server.server_close() > self.server = None > if self.task is not None: > await asyncio.sleep(0.1) > if not self.task.cancelled(): > self.task.cancel() > try: > > await self.task > E TypeError: BaseEventLoop.create_datagram_endpoint() got > an unexpected keyword argument 'reuse_address' > > test/test_server_asyncio.py:142: TypeError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > ---------------------------- Captured log teardown > ----------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ____ ERROR at teardown of AsyncioServerTest.test_async_udp_server_roundtrip > ____ > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_roundtrip> > > async def asyncTearDown(self): > """Clean up the test environment""" > if self.server is not None: > await self.server.server_close() > self.server = None > if self.task is not None: > await asyncio.sleep(0.1) > if not self.task.cancelled(): > self.task.cancel() > try: > > await self.task > E TypeError: BaseEventLoop.create_datagram_endpoint() got > an unexpected keyword argument 'reuse_address' > > test/test_server_asyncio.py:142: TypeError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > ---------------------------- Captured log teardown > ----------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ____ ERROR at teardown of AsyncioServerTest.test_async_udp_server_send_data > ____ > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_send_data> > > async def asyncTearDown(self): > """Clean up the test environment""" > if self.server is not None: > await self.server.server_close() > self.server = None > if self.task is not None: > await asyncio.sleep(0.1) > if not self.task.cancelled(): > self.task.cancel() > try: > > await self.task > E TypeError: BaseEventLoop.create_datagram_endpoint() got > an unexpected keyword argument 'reuse_address' > > test/test_server_asyncio.py:142: TypeError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > ---------------------------- Captured log teardown > ----------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > _ ERROR at teardown of > AsyncioServerTest.test_async_udp_server_serve_forever_close _ > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_serve_forever_close> > > async def asyncTearDown(self): > """Clean up the test environment""" > if self.server is not None: > await self.server.server_close() > self.server = None > if self.task is not None: > await asyncio.sleep(0.1) > if not self.task.cancelled(): > self.task.cancel() > try: > > await self.task > E TypeError: BaseEventLoop.create_datagram_endpoint() got > an unexpected keyword argument 'reuse_address' > > test/test_server_asyncio.py:142: TypeError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > ---------------------------- Captured log teardown > ----------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > _ ERROR at teardown of > AsyncioServerTest.test_async_udp_server_serve_forever_twice _ > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_serve_forever_twice> > > async def asyncTearDown(self): > """Clean up the test environment""" > if self.server is not None: > await self.server.server_close() > self.server = None > if self.task is not None: > await asyncio.sleep(0.1) > if not self.task.cancelled(): > self.task.cancel() > try: > > await self.task > E TypeError: BaseEventLoop.create_datagram_endpoint() got > an unexpected keyword argument 'reuse_address' > > test/test_server_asyncio.py:142: TypeError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > ---------------------------- Captured log teardown > ----------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > =================================== FAILURES > =================================== > _ test_exp_async_framer[run_async_basic_calls-udp-ModbusSocketFramer-5024-30] > __ > > fut = <Future cancelled>, timeout = 3 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > > return fut.result() > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/tasks.py:490: CancelledError > > The above exception was the direct cause of the following exception: > > test_comm = 'udp' > test_framer = <class 'pymodbus.framer.socket_framer.ModbusSocketFramer'> > test_port_offset = 30, test_port = 5024, mock_run_server = None > test_type = <function run_async_basic_calls at 0x7fa5b2c396c0> > > @pytest.mark.parametrize("test_port_offset", [30]) > @pytest.mark.parametrize("test_comm, test_framer, test_port", > TEST_COMMS_FRAMER) > @pytest.mark.parametrize( > "test_type", > [ > None, > run_async_basic_calls, > run_async_ext_calls, > ], > ) > async def test_exp_async_framer( # pylint: disable=unused-argument > test_comm, > test_framer, > test_port_offset, > test_port, > mock_run_server, > test_type > ): > """Test client-server async with different framers and calls.""" > if test_type == run_async_ext_calls and test_framer == > ModbusRtuFramer: # pylint: disable=comparison-with-callable > return > if test_comm == "serial": > return > > args = Commandline > args.framer = test_framer > args.comm = test_comm > args.port = test_port > if isinstance(test_port, int): > args.port += test_port_offset > > await run_client(test_comm, test_type, args=args) > > test/test_examples.py:152: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > test/test_examples.py:83: in run_client > await run_async_client(test_client, modbus_calls=test_type) > ../../../examples/client_async.py:132: in run_async_client > await modbus_calls(client) > ../../../examples/client_async_basic_calls.py:116: in run_async_basic_calls > await _handle_coils(client) > ../../../examples/client_async_basic_calls.py:21: in _handle_coils > rr = await client.read_coils(1, 1, slave=SLAVE) > pymodbus/client/base.py:292: in execute > resp = await asyncio.wait_for(req, timeout=self.params.timeout) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Future cancelled>, timeout = 3 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:492: TimeoutError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > INFO root:server_async.py:71 ### Create datastore > INFO root:server_async.py:150 ### start ASYNC server on port 5054 > ------------------------------ Captured log call > ------------------------------- > INFO root:client_async.py:52 ### Create client object > INFO root:client_async.py:128 ### Client starting > DEBUG pymodbus.client.udp:udp.py:74 Connecting to 127.0.0.1:5054. > DEBUG pymodbus.client.udp:udp.py:107 Connecting. > DEBUG pymodbus.client.base:base.py:350 Client connected to modbus server > INFO pymodbus.client.udp:udp.py:128 Protocol made connection. > INFO pymodbus.client.udp:udp.py:116 Connected to 127.0.0.1:5054. > INFO root:client_async_basic_calls.py:20 ### Reading Coil > DEBUG pymodbus.client.base:base.py:380 send: 0x0 0x1 0x0 0x0 0x0 0x6 0x1 > 0x1 0x0 0x1 0x0 0x1 > DEBUG pymodbus.transaction:transaction.py:516 Adding transaction 1 > ---------------------------- Captured log teardown > ----------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ___ test_exp_async_framer[run_async_basic_calls-udp-ModbusRtuFramer-5025-30] > ___ > > fut = <Future cancelled>, timeout = 3 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > > return fut.result() > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/tasks.py:490: CancelledError > > The above exception was the direct cause of the following exception: > > test_comm = 'udp' > test_framer = <class 'pymodbus.framer.rtu_framer.ModbusRtuFramer'> > test_port_offset = 30, test_port = 5025, mock_run_server = None > test_type = <function run_async_basic_calls at 0x7fa5b2c396c0> > > @pytest.mark.parametrize("test_port_offset", [30]) > @pytest.mark.parametrize("test_comm, test_framer, test_port", > TEST_COMMS_FRAMER) > @pytest.mark.parametrize( > "test_type", > [ > None, > run_async_basic_calls, > run_async_ext_calls, > ], > ) > async def test_exp_async_framer( # pylint: disable=unused-argument > test_comm, > test_framer, > test_port_offset, > test_port, > mock_run_server, > test_type > ): > """Test client-server async with different framers and calls.""" > if test_type == run_async_ext_calls and test_framer == > ModbusRtuFramer: # pylint: disable=comparison-with-callable > return > if test_comm == "serial": > return > > args = Commandline > args.framer = test_framer > args.comm = test_comm > args.port = test_port > if isinstance(test_port, int): > args.port += test_port_offset > > await run_client(test_comm, test_type, args=args) > > test/test_examples.py:152: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > test/test_examples.py:83: in run_client > await run_async_client(test_client, modbus_calls=test_type) > ../../../examples/client_async.py:132: in run_async_client > await modbus_calls(client) > ../../../examples/client_async_basic_calls.py:116: in run_async_basic_calls > await _handle_coils(client) > ../../../examples/client_async_basic_calls.py:21: in _handle_coils > rr = await client.read_coils(1, 1, slave=SLAVE) > pymodbus/client/base.py:292: in execute > resp = await asyncio.wait_for(req, timeout=self.params.timeout) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Future cancelled>, timeout = 3 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:492: TimeoutError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > INFO root:server_async.py:71 ### Create datastore > INFO root:server_async.py:150 ### start ASYNC server on port 5055 > ------------------------------ Captured log call > ------------------------------- > INFO root:client_async.py:52 ### Create client object > INFO root:client_async.py:128 ### Client starting > DEBUG pymodbus.client.udp:udp.py:74 Connecting to 127.0.0.1:5055. > DEBUG pymodbus.client.udp:udp.py:107 Connecting. > DEBUG pymodbus.client.base:base.py:350 Client connected to modbus server > INFO pymodbus.client.udp:udp.py:128 Protocol made connection. > INFO pymodbus.client.udp:udp.py:116 Connected to 127.0.0.1:5055. > INFO root:client_async_basic_calls.py:20 ### Reading Coil > DEBUG pymodbus.client.base:base.py:380 send: 0x1 0x1 0x0 0x1 0x0 0x1 0xac > 0xa > DEBUG pymodbus.transaction:transaction.py:516 Adding transaction 1 > ---------------------------- Captured log teardown > ----------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > __ test_exp_async_framer[run_async_ext_calls-udp-ModbusSocketFramer-5024-30] > ___ > > fut = <Future cancelled>, timeout = 3 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > > return fut.result() > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/tasks.py:490: CancelledError > > The above exception was the direct cause of the following exception: > > test_comm = 'udp' > test_framer = <class 'pymodbus.framer.socket_framer.ModbusSocketFramer'> > test_port_offset = 30, test_port = 5024, mock_run_server = None > test_type = <function run_async_ext_calls at 0x7fa5b2c39940> > > @pytest.mark.parametrize("test_port_offset", [30]) > @pytest.mark.parametrize("test_comm, test_framer, test_port", > TEST_COMMS_FRAMER) > @pytest.mark.parametrize( > "test_type", > [ > None, > run_async_basic_calls, > run_async_ext_calls, > ], > ) > async def test_exp_async_framer( # pylint: disable=unused-argument > test_comm, > test_framer, > test_port_offset, > test_port, > mock_run_server, > test_type > ): > """Test client-server async with different framers and calls.""" > if test_type == run_async_ext_calls and test_framer == > ModbusRtuFramer: # pylint: disable=comparison-with-callable > return > if test_comm == "serial": > return > > args = Commandline > args.framer = test_framer > args.comm = test_comm > args.port = test_port > if isinstance(test_port, int): > args.port += test_port_offset > > await run_client(test_comm, test_type, args=args) > > test/test_examples.py:152: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > test/test_examples.py:83: in run_client > await run_async_client(test_client, modbus_calls=test_type) > ../../../examples/client_async.py:132: in run_async_client > await modbus_calls(client) > ../../../examples/client_async_extended_calls.py:166: in run_async_ext_calls > await _execute_information_requests(client) > ../../../examples/client_async_extended_calls.py:63: in > _execute_information_requests > rr = await client.execute(ReadDeviceInformationRequest(unit=UNIT)) > pymodbus/client/base.py:292: in execute > resp = await asyncio.wait_for(req, timeout=self.params.timeout) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Future cancelled>, timeout = 3 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:492: TimeoutError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > INFO root:server_async.py:71 ### Create datastore > INFO root:server_async.py:150 ### start ASYNC server on port 5054 > ------------------------------ Captured log call > ------------------------------- > INFO root:client_async.py:52 ### Create client object > INFO root:client_async.py:128 ### Client starting > DEBUG pymodbus.client.udp:udp.py:74 Connecting to 127.0.0.1:5054. > DEBUG pymodbus.client.udp:udp.py:107 Connecting. > DEBUG pymodbus.client.base:base.py:350 Client connected to modbus server > INFO pymodbus.client.udp:udp.py:128 Protocol made connection. > INFO pymodbus.client.udp:udp.py:116 Connected to 127.0.0.1:5054. > INFO root:client_async_extended_calls.py:62 ### Running > ReadDeviceInformationRequest > DEBUG pymodbus.client.base:base.py:380 send: 0x0 0x1 0x0 0x0 0x0 0x5 0x1 > 0x2b 0xe 0x1 0x0 > DEBUG pymodbus.transaction:transaction.py:516 Adding transaction 1 > ---------------------------- Captured log teardown > ----------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ________________ AsyncioServerTest.test_async_start_udp_server > _________________ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > > return fut.result() > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/tasks.py:490: CancelledError > > The above exception was the direct cause of the following exception: > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_start_udp_server> > > async def test_async_start_udp_server(self): > """Test that the modbus udp asyncio server starts correctly""" > > await self.start_server(do_udp=True, do_ident=True) > > test/test_server_asyncio.py:331: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > test/test_server_asyncio.py:181: in start_server > await asyncio.wait_for(self.server.serving, timeout=0.1) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:492: TimeoutError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > ______________ AsyncioServerTest.test_async_udp_server_exception > _______________ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > > return fut.result() > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/tasks.py:490: CancelledError > > The above exception was the direct cause of the following exception: > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_exception> > > async def test_async_udp_server_exception(self): > """Test sending garbage data on a TCP socket should drop the > connection""" > BasicClient.dataTo = b"\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" > BasicClient.connected = self.loop.create_future() > BasicClient.done = self.loop.create_future() > > await self.start_server(do_udp=True) > > test/test_server_asyncio.py:414: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > test/test_server_asyncio.py:181: in start_server > await asyncio.wait_for(self.server.serving, timeout=0.1) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:492: TimeoutError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > _____________ AsyncioServerTest.test_async_udp_server_receive_data > _____________ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > > return fut.result() > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/tasks.py:490: CancelledError > > The above exception was the direct cause of the following exception: > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_receive_data> > > @pytest.mark.skifif(pytest.IS_WINDOWS, reason="Windows have a timeout > problem.") > async def test_async_udp_server_receive_data(self): > """Test that the sending data on datagram socket gets data pushed to > framer""" > > await self.start_server(do_udp=True) > > test/test_server_asyncio.py:363: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > test/test_server_asyncio.py:181: in start_server > await asyncio.wait_for(self.server.serving, timeout=0.1) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:492: TimeoutError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > ______________ AsyncioServerTest.test_async_udp_server_roundtrip > _______________ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > > return fut.result() > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/tasks.py:490: CancelledError > > The above exception was the direct cause of the following exception: > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_roundtrip> > > async def test_async_udp_server_roundtrip(self): > """Test sending and receiving data on udp socket""" > expected_response = b"\x01\x00\x00\x00\x00\x05\x01\x03\x02\x00\x11" > # value of 17 as per context > BasicClient.dataTo = TEST_DATA # unit 1, read register > BasicClient.done = self.loop.create_future() > > await self.start_server(do_udp=True) > > test/test_server_asyncio.py:398: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > test/test_server_asyncio.py:181: in start_server > await asyncio.wait_for(self.server.serving, timeout=0.1) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:492: TimeoutError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > ______________ AsyncioServerTest.test_async_udp_server_send_data > _______________ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > > return fut.result() > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/tasks.py:490: CancelledError > > The above exception was the direct cause of the following exception: > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_send_data> > > async def test_async_udp_server_send_data(self): > """Test that the modbus udp asyncio server correctly sends data > outbound""" > BasicClient.dataTo = > b"x\01\x00\x00\x00\x00\x06\x01\x03\x00\x00\x00\x19" > > await self.start_server(do_udp=True) > > test/test_server_asyncio.py:377: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > test/test_server_asyncio.py:181: in start_server > await asyncio.wait_for(self.server.serving, timeout=0.1) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:492: TimeoutError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > _________ AsyncioServerTest.test_async_udp_server_serve_forever_close > __________ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > > return fut.result() > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/tasks.py:490: CancelledError > > The above exception was the direct cause of the following exception: > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_serve_forever_close> > > async def test_async_udp_server_serve_forever_close(self): > """Test StarAsyncUdpServer serve_forever() method""" > > await self.start_server(do_udp=True) > > test/test_server_asyncio.py:346: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > test/test_server_asyncio.py:181: in start_server > await asyncio.wait_for(self.server.serving, timeout=0.1) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:492: TimeoutError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > _________ AsyncioServerTest.test_async_udp_server_serve_forever_twice > __________ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > > return fut.result() > E asyncio.exceptions.CancelledError > > /usr/lib/python3.11/asyncio/tasks.py:490: CancelledError > > The above exception was the direct cause of the following exception: > > self = <test.test_server_asyncio.AsyncioServerTest > testMethod=test_async_udp_server_serve_forever_twice> > > async def test_async_udp_server_serve_forever_twice(self): > """Call on serve_forever() twice should result in a runtime error""" > > await self.start_server(do_udp=True, do_ident=True) > > test/test_server_asyncio.py:356: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > test/test_server_asyncio.py:181: in start_server > await asyncio.wait_for(self.server.serving, timeout=0.1) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > fut = <Future cancelled created at > /usr/lib/python3.11/asyncio/base_events.py:427> > timeout = 0.1 > > async def wait_for(fut, timeout): > """Wait for the single Future or coroutine to complete, with timeout. > > Coroutine will be wrapped in Task. > > Returns result of the Future or coroutine. When a timeout occurs, > it cancels the task and raises TimeoutError. To avoid the task > cancellation, wrap it in shield(). > > If the wait is cancelled, the task is also cancelled. > > This function is a coroutine. > """ > loop = events.get_running_loop() > > if timeout is None: > return await fut > > if timeout <= 0: > fut = ensure_future(fut, loop=loop) > > if fut.done(): > return fut.result() > > await _cancel_and_wait(fut, loop=loop) > try: > return fut.result() > except exceptions.CancelledError as exc: > raise exceptions.TimeoutError() from exc > > waiter = loop.create_future() > timeout_handle = loop.call_later(timeout, _release_waiter, waiter) > cb = functools.partial(_release_waiter, waiter) > > fut = ensure_future(fut, loop=loop) > fut.add_done_callback(cb) > > try: > # wait until the future completes or the timeout > try: > await waiter > except exceptions.CancelledError: > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > raise > > if fut.done(): > return fut.result() > else: > fut.remove_done_callback(cb) > # We must ensure that the task is not running > # after wait_for() returns. > # See https://bugs.python.org/issue32751 > await _cancel_and_wait(fut, loop=loop) > # In case task cancellation failed with some > # exception, we should re-raise it > # See https://bugs.python.org/issue40607 > try: > return fut.result() > except exceptions.CancelledError as exc: > > raise exceptions.TimeoutError() from exc > E TimeoutError > > /usr/lib/python3.11/asyncio/tasks.py:492: TimeoutError > ------------------------------ Captured log setup > ------------------------------ > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ------------------------------ Captured log call > ------------------------------- > DEBUG asyncio:selector_events.py:54 Using selector: EpollSelector > ERROR asyncio:base_events.py:1765 Exception in callback > AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > handle: <Handle AsyncioServerTest.handle_task(<Task finishe.../tasks.py:374>) > created at /usr/lib/python3.11/asyncio/events.py:80> > source_traceback: Object created at (most recent call last): > File "/usr/lib/python3.11/unittest/case.py", line 623, in run > self._callTestMethod(testMethod) > File "/usr/lib/python3.11/unittest/async_case.py", line 90, in > _callTestMethod > if self._callMaybeAsync(method) is not None: > File "/usr/lib/python3.11/unittest/async_case.py", line 112, in > _callMaybeAsync > return self._asyncioRunner.run( > File "/usr/lib/python3.11/asyncio/runners.py", line 118, in run > return self._loop.run_until_complete(task) > File "/usr/lib/python3.11/asyncio/base_events.py", line 640, in > run_until_complete > self.run_forever() > File "/usr/lib/python3.11/asyncio/base_events.py", line 607, in run_forever > self._run_once() > File "/usr/lib/python3.11/asyncio/base_events.py", line 1911, in _run_once > handle._run() > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > Traceback (most recent call last): > File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run > self._context.run(self._callback, *self._args) > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/test/test_server_asyncio.py", > line 155, in handle_task > result = result.result() > ^^^^^^^^^^^^^^^ > File > "/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build/pymodbus/server/async_io.py", > line 729, in serve_forever > self.protocol, self.endpoint = await self.loop.create_datagram_endpoint( > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > TypeError: BaseEventLoop.create_datagram_endpoint() got an unexpected keyword > argument 'reuse_address' > DEBUG asyncio:base_events.py:676 Close <_UnixSelectorEventLoop > running=False closed=False debug=True> > =========================== short test summary info > ============================ > FAILED > test/test_examples.py::test_exp_async_framer[run_async_basic_calls-udp-ModbusSocketFramer-5024-30] > FAILED > test/test_examples.py::test_exp_async_framer[run_async_basic_calls-udp-ModbusRtuFramer-5025-30] > FAILED > test/test_examples.py::test_exp_async_framer[run_async_ext_calls-udp-ModbusSocketFramer-5024-30] > FAILED > test/test_server_asyncio.py::AsyncioServerTest::test_async_start_udp_server > FAILED > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_exception > FAILED > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_receive_data > FAILED > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_roundtrip > FAILED > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_send_data > FAILED > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_serve_forever_close > FAILED > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_serve_forever_twice > ERROR > test/test_server_asyncio.py::AsyncioServerTest::test_async_start_udp_server > ERROR > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_exception > ERROR > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_receive_data > ERROR > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_roundtrip > ERROR > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_send_data > ERROR > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_serve_forever_close > ERROR > test/test_server_asyncio.py::AsyncioServerTest::test_async_udp_server_serve_forever_twice > ============= 10 failed, 433 passed, 7 errors in 65.04s (0:01:05) > ============== > E: pybuild pybuild:388: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_pymodbus/build; python3.11 -m pytest > test > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11 > returned exit code 13 The full build log is available from: http://qa-logs.debian.net/2023/01/13/pymodbus_3.0.0-5_unstable.log All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230113;[email protected] or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230113&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime.

