From e619dc9368c56bc5e7d0bd24e21dcbd7223a3043 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 29 Mar 2026 23:44:06 +0000 Subject: [PATCH] fix: use module scope for E2E fixtures --- tests/e2e/conftest.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/e2e/conftest.py b/tests/e2e/conftest.py index 4d10956..1517811 100644 --- a/tests/e2e/conftest.py +++ b/tests/e2e/conftest.py @@ -4,6 +4,7 @@ E2E тесты для Kwork API. Требуют реальных credentials и запускаются только локально. """ +import asyncio import os from pathlib import Path @@ -15,6 +16,9 @@ from kwork_api import KworkClient # Загружаем .env load_dotenv(Path(__file__).parent / ".env") +# Отключаем auto mode для pytest-asyncio чтобы использовать один event loop +pytest_plugins = ('pytest_asyncio',) + @pytest.fixture(scope="session") def kwork_credentials(): @@ -36,35 +40,31 @@ def require_credentials(kwork_credentials): return kwork_credentials -@pytest.fixture(scope="session") +@pytest.fixture(scope="module") def client(require_credentials): """ - E2E клиент для всех тестов. + E2E клиент для всех тестов в модуле. - Авторизуется один раз и переиспользуется во всех тестах сессии. + Авторизуется один раз и переиспользуется во всех тестах модуля. """ - import asyncio - - async def login(): + async def create_client(): return await KworkClient.login( username=require_credentials["username"], password=require_credentials["password"], ) - client = asyncio.run(login()) + client = asyncio.run(create_client()) yield client asyncio.run(client.close()) -@pytest.fixture(scope="session") +@pytest.fixture(scope="module") def catalog_kwork_id(client): """ Получить ID первого кворка из каталога для тестов. - Переиспользуется во всех тестах сессии. + Переиспользуется во всех тестах модуля. """ - import asyncio - async def get_first_kwork(): catalog = await client.catalog.get_list(page=1) if len(catalog.kworks) > 0: