Files
writer-work-flow/apps/api/tests/conftest.py
Yaojia Wang d3dc620a71 feat: Phase 0 — monorepo 骨架 + 全表迁移 + FastAPI/Next 骨架 + CI
- uv(workspace) + pnpm monorepo;docker-compose(pg+api+web)
- SQLAlchemy 16 MVP 表 + Alembic 初版迁移(无漂移,users stub)
- FastAPI 骨架:统一错误信封(带 request_id) + structlog + /jobs/:id + OpenAPI
- Next.js 骨架:纸感主题 token + OpenAPI→TS 客户端代码生成(gen:api)
- CI(ruff/mypy/pytest + pg service + alembic 漂移校验)
- 四份设计规格(PRODUCT/UX/ARCHITECTURE/DEV_PLAN) + CLAUDE.md
2026-06-18 11:38:28 +02:00

45 lines
1.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""端点测试 fixtures用内存替身覆盖依赖注入有效加密 key无 DB/无网络)。"""
from __future__ import annotations
import os
import pytest
from cryptography.fernet import Fernet
from fakes_providers import FakeCredentialStore, FakeProviderProbe
from fastapi.testclient import TestClient
@pytest.fixture
def enc_key() -> str:
return Fernet.generate_key().decode()
@pytest.fixture
def store() -> FakeCredentialStore:
return FakeCredentialStore()
@pytest.fixture
def probe() -> FakeProviderProbe:
return FakeProviderProbe()
@pytest.fixture
def client(enc_key: str, store: FakeCredentialStore, probe: FakeProviderProbe) -> TestClient:
os.environ["CREDENTIAL_ENC_KEY"] = enc_key
from ww_config import get_settings
get_settings.cache_clear() # 让新 env 生效
from ww_api.main import create_app
from ww_api.services.provider_deps import (
get_credential_store,
get_provider_probe,
)
app = create_app()
app.dependency_overrides[get_credential_store] = lambda: store
app.dependency_overrides[get_provider_probe] = lambda: probe
return TestClient(app)