conftest.py•1.34 kB
from secrets import token_hex
from typing import Iterator, Mapping
import pytest
from strawberry.relay import GlobalID
from phoenix.client import Client
from .._helpers import (
_AppInfo,
_ExistingProject,
_ExistingSpan,
_insert_spans,
_server,
)
@pytest.fixture(scope="package")
def _env(
_env_ports: Mapping[str, str],
_env_database: Mapping[str, str],
_env_auth: Mapping[str, str],
_env_smtp: Mapping[str, str],
) -> dict[str, str]:
"""Combine all environment variable configurations for testing."""
return {
**_env_ports,
**_env_database,
**_env_auth,
**_env_smtp,
}
@pytest.fixture(scope="package")
def _app(
_env: dict[str, str],
) -> Iterator[_AppInfo]:
with _server(_AppInfo(_env)) as app:
yield app
@pytest.fixture(scope="package")
def _existing_spans(
_app: _AppInfo,
) -> tuple[_ExistingSpan, ...]:
return _insert_spans(_app, 102)
@pytest.fixture(scope="function")
def _existing_project(
_app: _AppInfo,
) -> Iterator[_ExistingProject]:
client = Client(base_url=_app.base_url, api_key=_app.admin_secret)
project = client.projects.create(name=token_hex(16))
yield _ExistingProject(id=GlobalID.from_id(project["id"]), name=project["name"])
client.projects.delete(project_name=project["name"])