from collections.abc import Iterator import pytest import pyxdi from audience_common.auth.account import AccountAccess from fastapi import FastAPI from starlette.testclient import TestClient from campaigns.api import auth from campaigns.api.app import get_application @pytest.fixture(scope="session") def app(di: pyxdi.PyxDI) -> FastAPI: return get_application(di=di) @pytest.fixture def test_client(app: FastAPI) -> Iterator[TestClient]: with TestClient(app) as client: yield client @pytest.fixture def mock_auth( app: FastAPI, profile_id: int, identity_id: str, account_access: AccountAccess ) -> None: app.dependency_overrides[auth.get_profile_id] = lambda: profile_id app.dependency_overrides[auth.get_identity_id] = lambda: identity_id app.dependency_overrides[auth.get_account_access] = lambda: account_access