fooder-api/fooder/test/fixtures/client.py

28 lines
836 B
Python

import pytest_asyncio
from httpx import AsyncClient, ASGITransport
from fooder.app import app
from fooder.db import get_db_session
@pytest_asyncio.fixture
async def client(db_session):
async def override_get_db_session():
yield db_session
app.dependency_overrides[get_db_session] = override_get_db_session
async with AsyncClient(transport=ASGITransport(app=app), base_url="http://test") as c:
yield c
app.dependency_overrides.clear()
@pytest_asyncio.fixture
async def auth_client(client, user, user_password):
response = await client.post(
"/api/token",
data={"username": user.username, "password": user_password},
)
token = response.json()["access_token"]
client.headers["Authorization"] = f"Bearer {token}"
yield client
del client.headers["Authorization"]