geo/backend/tests/fixtures/client.py

42 lines
1.2 KiB
Python

import pytest_asyncio
from httpx import ASGITransport, AsyncClient
from app.api.deps import get_current_user, get_db
from app.main import app
@pytest_asyncio.fixture
async def async_client(async_session, test_user):
async def override_get_db():
yield async_session
async def override_get_current_user():
return test_user
app.dependency_overrides[get_db] = override_get_db
app.dependency_overrides[get_current_user] = override_get_current_user
transport = ASGITransport(app=app)
async with AsyncClient(transport=transport, base_url="http://test") as client:
yield client
app.dependency_overrides.clear()
@pytest_asyncio.fixture
async def paid_client(async_session, paid_user):
async def override_get_db():
yield async_session
async def override_get_current_user():
return paid_user
app.dependency_overrides[get_db] = override_get_db
app.dependency_overrides[get_current_user] = override_get_current_user
transport = ASGITransport(app=app)
async with AsyncClient(transport=transport, base_url="http://test") as client:
yield client
app.dependency_overrides.clear()