25 lines
660 B
Python
25 lines
660 B
Python
# API test fixtures
|
|
# Provides: httpx.AsyncClient, authentication helpers, test API data
|
|
|
|
from typing import AsyncGenerator
|
|
|
|
import pytest
|
|
from httpx import ASGITransport, AsyncClient
|
|
|
|
|
|
@pytest.fixture
|
|
async def client() -> AsyncGenerator[AsyncClient, None]:
|
|
"""Create async HTTP client for API testing."""
|
|
from app.main import app_factory
|
|
|
|
app = app_factory()
|
|
transport = ASGITransport(app=app)
|
|
async with AsyncClient(transport=transport, base_url="http://test") as ac:
|
|
yield ac
|
|
|
|
|
|
@pytest.fixture
|
|
def auth_headers() -> dict[str, str]:
|
|
"""Return mock authentication headers."""
|
|
return {"Authorization": "Bearer test_token"}
|