fix(tests): eliminate RuntimeWarning for unawaited coroutines #32

Merged
agent-dev-a merged 2 commits from fix/unawaited-coroutine-warnings into main 2026-05-25 17:58:24 +00:00
3 changed files with 8 additions and 2 deletions
+1
View File
@@ -703,6 +703,7 @@ class QQAdapter(BasePlatformAdapter):
loop = asyncio.get_running_loop()
return loop.create_task(coro)
except RuntimeError:
coro.close()
return None
def _dispatch_payload(self, payload: Dict[str, Any]) -> None:
+4 -1
View File
@@ -64,12 +64,15 @@ async def test_concurrent_joins_do_not_double_connect():
with patch.object(discord_mod, "VoiceReceiver",
MagicMock(return_value=MagicMock(start=lambda: None))):
with patch.object(discord_mod.asyncio, "ensure_future",
lambda _c: asyncio.create_task(asyncio.sleep(0))):
lambda c: asyncio.create_task(c)):
t1 = asyncio.create_task(adapter.join_voice_channel(channel))
t2 = asyncio.create_task(adapter.join_voice_channel(channel))
await asyncio.sleep(0.05)
release.set()
r1, r2 = await asyncio.gather(t1, t2)
# Cancel any voice-timeout tasks spawned during the test
for vt in list(adapter._voice_timeout_tasks.values()):
vt.cancel()
assert connect_count[0] == 1, (
f"expected 1 channel.connect() call, got {connect_count[0]}"
+3 -1
View File
@@ -255,8 +255,10 @@ class TestRunAsyncWithRunningLoop:
FakeExecutor,
)
coro = _never_finishes()
with pytest.raises(concurrent.futures.TimeoutError):
_run_async(_never_finishes())
_run_async(coro)
coro.close() # suppress "never awaited" RuntimeWarning
assert events["result_timeout"] == 300
# The worker wrapper creates its own event loop so _run_async can