Files
RekomenciBackend/tests/web_api/conftest.py
T
ivankirpichnikov a2a9b8f8c1 add edit resume
2025-11-22 03:31:17 +03:00

41 lines
1.2 KiB
Python

import asyncio
import logging
import os
from collections.abc import AsyncIterable, AsyncIterator
from pathlib import Path
from typing import cast
import pytest
from dishka import AsyncContainer
from fastapi import FastAPI
from template_project.web_api.configuration import load_configuration
from template_project.web_api.entry_point import make_server
from tests.web_api.helpers import get_unique_email
from tests.web_api.ioc import make_ioc
@pytest.fixture(scope="session")
async def dishka_container(backend: FastAPI) -> AsyncIterable[AsyncContainer]:
path = Path(os.environ["CONFIGURATION_PATH"])
configuration = load_configuration(path)
ioc = make_ioc(configuration, backend)
yield ioc
await ioc.close()
@pytest.fixture(scope="session")
async def backend() -> AsyncIterator[FastAPI]:
logging.getLogger("httpx").setLevel(logging.WARNING)
logging.getLogger("httpcore").setLevel(logging.WARNING)
configuration = load_configuration(Path(os.environ["CONFIGURATION_PATH"]))
server = make_server(configuration)
asyncio.create_task(server.serve()) # type: ignore[unused-awaitable]
yield cast(FastAPI, server.config.app)
@pytest.fixture
def unique_email() -> str:
return get_unique_email()