fix: use module scope for E2E fixtures
This commit is contained in:
parent
3fbf12163a
commit
e619dc9368
@ -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:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user