28 lines
836 B
Python
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"]
|