fix(live tests): replace deprecated event_loop fixture with loop_scope="module" on async fixtures

This commit is contained in:
2026-05-10 22:29:57 -04:00
parent 0403cfc6a2
commit ab18cd7797
3 changed files with 7 additions and 21 deletions

View File

@@ -34,14 +34,7 @@ from sqlalchemy.pool import StaticPool # noqa: E402
import uuid as _uuid # noqa: E402 import uuid as _uuid # noqa: E402
@pytest.fixture(scope="module") @pytest.fixture(scope="module", loop_scope="module", autouse=True)
def event_loop():
loop = asyncio.new_event_loop()
yield loop
loop.close()
@pytest.fixture(scope="module", autouse=True)
async def live_db(): async def live_db():
"""Spin up an in-memory SQLite for the live test module.""" """Spin up an in-memory SQLite for the live test module."""
engine = create_async_engine( engine = create_async_engine(
@@ -75,7 +68,7 @@ async def live_db():
await engine.dispose() await engine.dispose()
@pytest.fixture(scope="module") @pytest.fixture(scope="module", loop_scope="module")
async def live_client(live_db): async def live_client(live_db):
async with httpx.AsyncClient( async with httpx.AsyncClient(
transport=httpx.ASGITransport(app=app), transport=httpx.ASGITransport(app=app),
@@ -84,7 +77,7 @@ async def live_client(live_db):
yield ac yield ac
@pytest.fixture(scope="module") @pytest.fixture(scope="module", loop_scope="module")
async def token(live_client): async def token(live_client):
resp = await live_client.post("/api/v1/auth/login", json={ resp = await live_client.post("/api/v1/auth/login", json={
"username": DECNET_ADMIN_USER, "username": DECNET_ADMIN_USER,

View File

@@ -74,7 +74,7 @@ def _url_with_db(server_url: str, db_name: str) -> str:
return urlunparse(parsed._replace(path=f"/{db_name}")) return urlunparse(parsed._replace(path=f"/{db_name}"))
@pytest.fixture(scope="module") @pytest.fixture(scope="module", loop_scope="module")
async def mysql_test_db_url(): async def mysql_test_db_url():
"""Create a per-worker throwaway database, yield its URL, drop it on teardown. """Create a per-worker throwaway database, yield its URL, drop it on teardown.

View File

@@ -66,14 +66,7 @@ from sqlalchemy.pool import StaticPool # noqa: E402
# ─── Shared fixtures ──────────────────────────────────────────────────────── # ─── Shared fixtures ────────────────────────────────────────────────────────
@pytest.fixture(scope="module") @pytest.fixture(scope="module", loop_scope="module", autouse=True)
def event_loop():
loop = asyncio.new_event_loop()
yield loop
loop.close()
@pytest.fixture(scope="module", autouse=True)
async def live_db(): async def live_db():
"""Real in-memory SQLite — shared across this module.""" """Real in-memory SQLite — shared across this module."""
engine = create_async_engine( engine = create_async_engine(
@@ -111,7 +104,7 @@ async def live_db():
await engine.dispose() await engine.dispose()
@pytest.fixture(scope="module") @pytest.fixture(scope="module", loop_scope="module")
async def live_client(live_db): async def live_client(live_db):
async with httpx.AsyncClient( async with httpx.AsyncClient(
transport=httpx.ASGITransport(app=app), transport=httpx.ASGITransport(app=app),
@@ -120,7 +113,7 @@ async def live_client(live_db):
yield ac yield ac
@pytest.fixture(scope="module") @pytest.fixture(scope="module", loop_scope="module")
async def token(live_client): async def token(live_client):
resp = await live_client.post( resp = await live_client.post(
"/api/v1/auth/login", "/api/v1/auth/login",