1
0

27 Commits

Author SHA256 Message Date
7e79b13fd7 Merge pull request 'Fix broken tests' (#1) from dgarcia/d-l-p-python-aiorpcX:fix-tests into factory
Reviewed-on: #1
2026-02-04 19:00:54 +01:00
3fc2f41d1c Fix broken tests
Add fix-jsonrpc-test-misc.patch to fix broken tests
gh#kyuupichan/aiorpcX#56
2026-02-04 13:46:37 +01:00
Jiri Slaby
e14039ce15 replace event_loop.patch by upstream solution 2025-07-31 09:08:29 +02:00
f686432c04 Accepting request 1296251 from devel:languages:python
- update to 0.25:
  * rawsocket: allow using custom transport class
- add event_loop.patch

OBS-URL: https://build.opensuse.org/request/show/1296251
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=12
2025-07-30 09:44:44 +00:00
2e0f035698 Accepting request 1266023 from devel:languages:python
Automatic submission by obs-autosubmit

OBS-URL: https://build.opensuse.org/request/show/1266023
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=11
2025-04-02 15:13:10 +00:00
7040199954 up to 0.24
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=21
2025-03-25 07:01:42 +00:00
d95b285a06 Accepting request 1169361 from devel:languages:python
- update to 0.23.1:
  * TaskTimeout now derives from Exception not CancelledError
  * make several tests more robust
  * move to flake8

  * handle SOCKSError in _connect_one
  * Add websocket support as client and server by using Aymeric

OBS-URL: https://build.opensuse.org/request/show/1169361
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=10
2024-04-21 18:27:05 +00:00
e23fe2328d - update to 0.23.1:
* TaskTimeout now derives from Exception not CancelledError
  * make several tests more robust
  * move to flake8
  * handle SOCKSError in _connect_one
  * Add websocket support as client and server by using Aymeric

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=19
2024-04-20 13:40:25 +00:00
ba1ae237f8 Accepting request 974336 from devel:languages:python
- update to 0.22.1
  * Consume group tasks as they complete
  * Attempt to make tests more robust to timing issues
  * join() waits for tasks to finish
  * Set joined at end of finally clause, just in case
  * Remove obsolete uvloop workaround
  * peername can be None in rare cases it seems
  * Try CRT
  * save some bandwidth: strip redundant whitespaces from json encoding
  * Final updates to TaskGroup() to bring it in line with curio's latest changes
  * Rework cancel_remaining() and expose blocking argument.
  * TaskGroup.join(): don't wait for tasks to cancel if exiting by exception
  * Make TaskGroup.result, exception etc. properties
  * Don't log failed tasks; asyncio does that
  * Add daemonic task tests
  * Bring TaskGroup into line with curio
  * Fix timing issue in test
  * Use a Semaphore not an Event to wake TaskGroup
  * Remove superstitous sleeps.
  * Reduce reliance on timing issues
  * Failed tests must fail the script
  * Require python3.8

OBS-URL: https://build.opensuse.org/request/show/974336
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=9
2022-05-02 14:25:51 +00:00
d73d4d638f up to 0.22.1
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=17
2022-05-02 08:02:20 +00:00
911db992cf Accepting request 919653 from devel:languages:python
- skip python 3.6. uvloop is not provided there and newer aiorpcx
  requires py >= 3.8 anyway. (But is API incomatible with electrum
  so far.)

OBS-URL: https://build.opensuse.org/request/show/919653
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=8
2021-09-17 21:25:58 +00:00
4ce1efe6ec fix build
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=16
2021-09-17 06:20:21 +00:00
54aaa233de Accepting request 887912 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/887912
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=7
2021-04-23 15:50:40 +00:00
dd04d4b652 Accepting request 886610 from home:jirislaby:branches:devel:languages:python
- update to 0.18.7
  * don't wait for tasks to cancel if exiting by exception
  * Fix tests for Python3.8 (we reenable them)
  * Merge pull request #34
  * SOCKS: Fix random auth on Python 3.8+
  * Merge pull request #33
  * session: add method on_disconnect_due_to_excessive_session_cost

OBS-URL: https://build.opensuse.org/request/show/886610
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=14
2021-04-23 03:47:38 +00:00
db604e21c0 Accepting request 797272 from devel:languages:python
- Skip over tests failing on Python 3.8 (gh#kyuupichan/aiorpcX#30)

OBS-URL: https://build.opensuse.org/request/show/797272
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=6
2020-04-25 18:34:37 +00:00
67ee026b36 - Skip over tests failing on Python 3.8 (gh#kyuupichan/aiorpcX#30)
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=12
2020-04-24 18:15:20 +00:00
1e693e57c8 Accepting request 765074 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/765074
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=5
2020-01-17 15:08:20 +00:00
Tomáš Chvátal
a8c4ff814f Accepting request 765047 from home:mcalabkova:branches:devel:languages:python
- update to 0.18.4
  * handle time.time() not making progress
  * handle SOCKSError in _connect_one 
  * socks.py: Add SOCKSRandomAuth

OBS-URL: https://build.opensuse.org/request/show/765047
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=10
2020-01-16 19:32:35 +00:00
ba66970c75 Accepting request 720024 from devel:languages:python
- Skip tests that actually can poll network

OBS-URL: https://build.opensuse.org/request/show/720024
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=4
2019-07-31 12:37:16 +00:00
Tomáš Chvátal
ea1508475c - Skip tests that actually can poll network
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=8
2019-07-31 09:51:57 +00:00
fab5152641 Accepting request 708402 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/708402
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=3
2019-06-12 11:13:29 +00:00
Tomáš Chvátal
160a746d5b Accepting request 708390 from home:mcalabkova:branches:devel:languages:python
- Update to 0.18.3
  * Add websocket support as client and server by using Aymeric 
    Augustin's excellent websockets package.
  * small bugfixes and improvements

OBS-URL: https://build.opensuse.org/request/show/708390
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=6
2019-06-07 15:12:59 +00:00
de490639f2 Accepting request 682110 from devel:languages:python
- Update to 0.10.5:
  * batches: fix handling of session loss
  * Export normalize_corofunc

OBS-URL: https://build.opensuse.org/request/show/682110
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=2
2019-03-22 14:00:32 +00:00
Tomáš Chvátal
e0d6ac9c9b - Update to 0.10.5:
* batches: fix handling of session loss
  * Export normalize_corofunc

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=4
2019-03-06 11:21:07 +00:00
c9336d5b13 Accepting request 678924 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/678924
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-aiorpcX?expand=0&rev=1
2019-02-27 14:06:16 +00:00
Tomáš Chvátal
0c3a14ce17 - Skip flaky test
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=2
2019-02-25 14:08:02 +00:00
Tomáš Chvátal
59f1396fc9 Accepting request 674558 from home:jirislaby:branches:devel:languages:python
This is needed for network:cryptocurrencies/electrum.

OBS-URL: https://build.opensuse.org/request/show/674558
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-aiorpcX?expand=0&rev=1
2019-02-13 13:17:04 +00:00
7 changed files with 191 additions and 131 deletions

BIN
0.23.1.tar.gz LFS

Binary file not shown.

BIN
0.24.tar.gz LFS

Binary file not shown.

View File

@@ -0,0 +1,159 @@
From: Neil Booth <kyuupichan@pm.me>
Date: Wed, 30 Jul 2025 14:41:44 -0400
Subject: Remove event_loop fixture usage from tests
References: event-loop-fix
Git-repo: https://github.com/kyuupichan/aiorpcX
Git-commit: b8ce32889c45c98b44c4e247ec0b0ae206e9ee91
Patch-mainline: yes
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
---
tests/test_session.py | 43 +++++++++-------------------------------
tests/test_socks.py | 6 +++---
tests/test_unixsocket.py | 16 +++++----------
tests/test_util.py | 3 ++-
4 files changed, 19 insertions(+), 49 deletions(-)
diff --git a/tests/test_session.py b/tests/test_session.py
index 8877fca3e839..f52ab6b03018 100755
--- a/tests/test_session.py
+++ b/tests/test_session.py
@@ -17,13 +17,6 @@ from aiorpcx.session import Concurrency
from util import RaiseTest
-if sys.version_info >= (3, 7):
- from asyncio import all_tasks
-else:
- from asyncio import Task
- all_tasks = Task.all_tasks
-
-
def raises_method_not_found(message):
return RaiseTest(JSONRPC.METHOD_NOT_FOUND, message, RPCError)
@@ -86,21 +79,12 @@ 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)
+async def server_port(unused_tcp_port):
+ server = await serve_rs(MyServerSession, 'localhost', unused_tcp_port)
yield unused_tcp_port
- if hasattr(asyncio, 'all_tasks'):
- tasks = asyncio.all_tasks(event_loop)
- else:
- tasks = asyncio.Task.all_tasks(loop=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())
+ server.close()
+ await server.wait_closed()
class TestRPCSession:
@@ -765,21 +749,12 @@ 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)
+async def msg_server_port(unused_tcp_port):
+ server = await serve_rs(MessageServer, 'localhost', unused_tcp_port)
yield unused_tcp_port
- if hasattr(asyncio, 'all_tasks'):
- tasks = asyncio.all_tasks(event_loop)
- else:
- tasks = asyncio.Task.all_tasks(loop=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())
+
+ server.close()
+ await server.wait_closed()
def connect_message_session(host, port, proxy=None, framer=None):
diff --git a/tests/test_socks.py b/tests/test_socks.py
index 43ca282d379e..a8d3af2d500d 100755
--- a/tests/test_socks.py
+++ b/tests/test_socks.py
@@ -482,10 +482,10 @@ localhosts = ['127.0.0.1', '::1', 'localhost']
@pytest.fixture(params=localhosts)
-def proxy_address(request, event_loop, unused_tcp_port):
+async def proxy_address(request, 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)
+ event_loop = asyncio.get_running_loop()
+ server = await event_loop.create_server(FakeServer, host=host, port=unused_tcp_port)
yield NetAddress(host, unused_tcp_port)
server.close()
diff --git a/tests/test_unixsocket.py b/tests/test_unixsocket.py
index f75f23db0369..ae8c27fc677c 100755
--- a/tests/test_unixsocket.py
+++ b/tests/test_unixsocket.py
@@ -11,20 +11,14 @@ if sys.platform.startswith("win"):
@pytest.fixture
-def us_server(event_loop):
+async def us_server():
+ event_loop = asyncio.get_running_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)
+ server = await serve_us(MyServerSession, socket_path)
yield socket_path
- tasks = asyncio.all_tasks(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())
+ server.close()
+ await server.wait_closed()
class TestUSTransport:
diff --git a/tests/test_util.py b/tests/test_util.py
index 8ce9691cd60d..5980607202a8 100755
--- a/tests/test_util.py
+++ b/tests/test_util.py
@@ -15,6 +15,7 @@ async def coro(x, y):
def test_is_async_call():
+ event_loop = asyncio.new_event_loop()
z = coro(2, 3)
assert not is_async_call(z)
assert is_async_call(coro)
@@ -23,7 +24,7 @@ def test_is_async_call():
assert not is_async_call(test_is_async_call)
assert not is_async_call(partial(is_async_call))
# Lose a warning
- asyncio.get_event_loop().run_until_complete(z)
+ event_loop.run_until_complete(z)
@pytest.mark.parametrize("hostname,answer", (
--
2.50.1

View File

@@ -1,119 +0,0 @@
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

@@ -0,0 +1,13 @@
Index: aiorpcX-0.25.0/tests/test_jsonrpc.py
===================================================================
--- aiorpcX-0.25.0.orig/tests/test_jsonrpc.py
+++ aiorpcX-0.25.0/tests/test_jsonrpc.py
@@ -1064,7 +1064,7 @@ async def test_max_response_size(protoco
await group.spawn(send_batch(batch))
-def test_misc(protocol):
+async def test_misc(protocol):
'''Misc tests to get full coverage.'''
connection = JSONRPCConnection(protocol)

View File

@@ -1,3 +1,17 @@
-------------------------------------------------------------------
Wed Feb 4 12:44:25 UTC 2026 - Daniel Garcia <daniel.garcia@suse.com>
- Add fix-jsonrpc-test-misc.patch to fix broken tests
gh#kyuupichan/aiorpcX#56
-------------------------------------------------------------------
Thu Jul 31 06:56:43 UTC 2025 - Jiri Slaby <jslaby@suse.cz>
- replace a non-upstream patch:
event_loop.patch
by an upstream one:
0001-Remove-event_loop-fixture-usage-from-tests.patch
-------------------------------------------------------------------
Tue Jul 29 07:18:50 UTC 2025 - Jiri Slaby <jslaby@suse.cz>

View File

@@ -1,7 +1,7 @@
#
# spec file for package python-aiorpcX
#
# Copyright (c) 2025 SUSE LLC
# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -25,7 +25,9 @@ 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
Patch0: 0001-Remove-event_loop-fixture-usage-from-tests.patch
# PATCH-FIX-OPENSUSE fix-jsonrpc-test-misc.patch -- gh#kyuupichan/aiorpcX#56
Patch1: fix-jsonrpc-test-misc.patch
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
@@ -48,10 +50,7 @@ BuildRequires: %{python_module websockets}
Generic async RPC implementation, including JSON-RPC
%prep
%setup -q -n aiorpcX-%{version}
%if 0%{?suse_version} > 1600
%autopatch -p1
%endif
%autosetup -p1 -n aiorpcX-%{version}
# needs network
rm tests/test_websocket.py
chmod a-x LICENCE README.rst docs/*