diff --git a/tests/live/test_health_live.py b/tests/live/test_health_live.py index e6f8ba80..05305859 100644 --- a/tests/live/test_health_live.py +++ b/tests/live/test_health_live.py @@ -14,6 +14,7 @@ from unittest.mock import MagicMock import httpx import pytest +import pytest_asyncio # Must be set before any decnet import os.environ.setdefault("DECNET_JWT_SECRET", "test-secret-key-at-least-32-chars-long!!") @@ -34,7 +35,7 @@ from sqlalchemy.pool import StaticPool # noqa: E402 import uuid as _uuid # noqa: E402 -@pytest.fixture(scope="module", loop_scope="module", autouse=True) +@pytest_asyncio.fixture(scope="module", loop_scope="module", autouse=True) async def live_db(): """Spin up an in-memory SQLite for the live test module.""" engine = create_async_engine( @@ -68,7 +69,7 @@ async def live_db(): await engine.dispose() -@pytest.fixture(scope="module", loop_scope="module") +@pytest_asyncio.fixture(scope="module", loop_scope="module") async def live_client(live_db): async with httpx.AsyncClient( transport=httpx.ASGITransport(app=app), @@ -77,7 +78,7 @@ async def live_client(live_db): yield ac -@pytest.fixture(scope="module", loop_scope="module") +@pytest_asyncio.fixture(scope="module", loop_scope="module") async def token(live_client): resp = await live_client.post("/api/v1/auth/login", json={ "username": DECNET_ADMIN_USER, diff --git a/tests/live/test_mysql_backend_live.py b/tests/live/test_mysql_backend_live.py index c571f575..e6baa0b8 100644 --- a/tests/live/test_mysql_backend_live.py +++ b/tests/live/test_mysql_backend_live.py @@ -28,6 +28,7 @@ from datetime import datetime, timedelta, timezone from urllib.parse import urlparse, urlunparse import pytest +import pytest_asyncio from sqlalchemy import text from sqlalchemy.ext.asyncio import create_async_engine @@ -74,7 +75,7 @@ def _url_with_db(server_url: str, db_name: str) -> str: return urlunparse(parsed._replace(path=f"/{db_name}")) -@pytest.fixture(scope="module", loop_scope="module") +@pytest_asyncio.fixture(scope="module", loop_scope="module") async def mysql_test_db_url(): """Create a per-worker throwaway database, yield its URL, drop it on teardown. diff --git a/tests/live/test_service_isolation_live.py b/tests/live/test_service_isolation_live.py index 36349272..c8bc746e 100644 --- a/tests/live/test_service_isolation_live.py +++ b/tests/live/test_service_isolation_live.py @@ -23,6 +23,7 @@ from pathlib import Path import httpx import pytest +import pytest_asyncio pytestmark = pytest.mark.skipif( os.environ.get("CI") == "true", @@ -66,7 +67,7 @@ from sqlalchemy.pool import StaticPool # noqa: E402 # ─── Shared fixtures ──────────────────────────────────────────────────────── -@pytest.fixture(scope="module", loop_scope="module", autouse=True) +@pytest_asyncio.fixture(scope="module", loop_scope="module", autouse=True) async def live_db(): """Real in-memory SQLite — shared across this module.""" engine = create_async_engine( @@ -104,7 +105,7 @@ async def live_db(): await engine.dispose() -@pytest.fixture(scope="module", loop_scope="module") +@pytest_asyncio.fixture(scope="module", loop_scope="module") async def live_client(live_db): async with httpx.AsyncClient( transport=httpx.ASGITransport(app=app), @@ -113,7 +114,7 @@ async def live_client(live_db): yield ac -@pytest.fixture(scope="module", loop_scope="module") +@pytest_asyncio.fixture(scope="module", loop_scope="module") async def token(live_client): resp = await live_client.post( "/api/v1/auth/login",