5 Commits

5 changed files with 135 additions and 5 deletions

BIN
0.24.tar.gz LFS

Binary file not shown.

BIN
0.25.0.tar.gz LFS Normal file

Binary file not shown.

119
event_loop.patch Normal file
View File

@@ -0,0 +1,119 @@
From: Jiri Slaby <jslaby@suse.cz>
Date: Mon, 30 Sep 2024 08:42:26 +0200
Subject: don't use event_loop pytest-asyncio fixture
References: build-fix
Patch-mainline: reported, https://github.com/kyuupichan/aiorpcX/issues/55
event_loop fixture was deprecated and removed from pytest-asyncio 1.0.0.
Use the internal _function_event_loop for the time being. Hopefully this
will be fixed upstream eventually...
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
tests/test_session.py | 24 ++++++++++++------------
tests/test_socks.py | 6 +++---
tests/test_unixsocket.py | 10 +++++-----
3 files changed, 20 insertions(+), 20 deletions(-)
--- a/tests/test_session.py
+++ b/tests/test_session.py
@@ -86,21 +86,21 @@ def caplog_count(caplog, message):
@pytest.fixture
-def server_port(unused_tcp_port, event_loop):
- coro = serve_rs(MyServerSession, 'localhost', unused_tcp_port, loop=event_loop)
- server = event_loop.run_until_complete(coro)
+def server_port(unused_tcp_port, _function_event_loop):
+ coro = serve_rs(MyServerSession, 'localhost', unused_tcp_port, loop=_function_event_loop)
+ server = _function_event_loop.run_until_complete(coro)
yield unused_tcp_port
if hasattr(asyncio, 'all_tasks'):
- tasks = asyncio.all_tasks(event_loop)
+ tasks = asyncio.all_tasks(_function_event_loop)
else:
- tasks = asyncio.Task.all_tasks(loop=event_loop)
+ tasks = asyncio.Task.all_tasks(loop=_function_event_loop)
async def close_all():
server.close()
await server.wait_closed()
if tasks:
await asyncio.wait(tasks)
- event_loop.run_until_complete(close_all())
+ _function_event_loop.run_until_complete(close_all())
class TestRPCSession:
@@ -765,21 +765,21 @@ class MessageServer(MessageSession):
@pytest.fixture
-def msg_server_port(event_loop, unused_tcp_port):
- coro = serve_rs(MessageServer, 'localhost', unused_tcp_port, loop=event_loop)
- server = event_loop.run_until_complete(coro)
+def msg_server_port(_function_event_loop, unused_tcp_port):
+ coro = serve_rs(MessageServer, 'localhost', unused_tcp_port, loop=_function_event_loop)
+ server = _function_event_loop.run_until_complete(coro)
yield unused_tcp_port
if hasattr(asyncio, 'all_tasks'):
- tasks = asyncio.all_tasks(event_loop)
+ tasks = asyncio.all_tasks(_function_event_loop)
else:
- tasks = asyncio.Task.all_tasks(loop=event_loop)
+ tasks = asyncio.Task.all_tasks(loop=_function_event_loop)
async def close_all():
server.close()
await server.wait_closed()
if tasks:
await asyncio.wait(tasks)
- event_loop.run_until_complete(close_all())
+ _function_event_loop.run_until_complete(close_all())
def connect_message_session(host, port, proxy=None, framer=None):
--- a/tests/test_socks.py
+++ b/tests/test_socks.py
@@ -482,10 +482,10 @@ localhosts = ['127.0.0.1', '::1', 'local
@pytest.fixture(params=localhosts)
-def proxy_address(request, event_loop, unused_tcp_port):
+def proxy_address(request, _function_event_loop, unused_tcp_port):
host = request.param
- coro = event_loop.create_server(FakeServer, host=host, port=unused_tcp_port)
- server = event_loop.run_until_complete(coro)
+ coro = _function_event_loop.create_server(FakeServer, host=host, port=unused_tcp_port)
+ server = _function_event_loop.run_until_complete(coro)
yield NetAddress(host, unused_tcp_port)
server.close()
--- a/tests/test_unixsocket.py
+++ b/tests/test_unixsocket.py
@@ -11,20 +11,20 @@ if sys.platform.startswith("win"):
@pytest.fixture
-def us_server(event_loop):
+def us_server(_function_event_loop):
with tempfile.TemporaryDirectory() as tmp_folder:
socket_path = path.join(tmp_folder, 'test.socket')
- coro = serve_us(MyServerSession, socket_path, loop=event_loop)
- server = event_loop.run_until_complete(coro)
+ coro = serve_us(MyServerSession, socket_path, loop=_function_event_loop)
+ server = _function_event_loop.run_until_complete(coro)
yield socket_path
- tasks = asyncio.all_tasks(event_loop)
+ tasks = asyncio.all_tasks(_function_event_loop)
async def close_all():
server.close()
await server.wait_closed()
if tasks:
await asyncio.wait(tasks)
- event_loop.run_until_complete(close_all())
+ _function_event_loop.run_until_complete(close_all())
class TestUSTransport:

View File

@@ -1,3 +1,10 @@
-------------------------------------------------------------------
Tue Jul 29 07:18:50 UTC 2025 - Jiri Slaby <jslaby@suse.cz>
- update to 0.25:
* rawsocket: allow using custom transport class
- add event_loop.patch
-------------------------------------------------------------------
Tue Mar 25 06:51:46 UTC 2025 - Jiri Slaby <jslaby@suse.cz>

View File

@@ -18,13 +18,14 @@
%{?sle15_python_module_pythons}
Name: python-aiorpcX
Version: 0.24
Version: 0.25.0
Release: 0
Summary: Generic async RPC implementation, including JSON-RPC
License: MIT
Group: Development/Languages/Python
URL: https://github.com/kyuupichan/aiorpcX
Source: https://github.com/kyuupichan/aiorpcX/archive/%{version}.tar.gz
Patch0: event_loop.patch
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
@@ -48,6 +49,9 @@ Generic async RPC implementation, including JSON-RPC
%prep
%setup -q -n aiorpcX-%{version}
%if 0%{?suse_version} > 1600
%autopatch -p1
%endif
# needs network
rm tests/test_websocket.py
chmod a-x LICENCE README.rst docs/*
@@ -72,6 +76,6 @@ SKIP_TESTS="$SKIP_TESTS or test_cancel_remaining_on_group_with_stubborn_task"
%doc README.rst docs/*.rst
%license LICENCE
%{python_sitelib}/aiorpcx
%{python_sitelib}/aiorpc[xX]-%{version}.0.dist-info
%{python_sitelib}/aiorpc[xX]-%{version}.dist-info
%changelog