数据库与模型:新增多版迁移(章节证据快照、对话血缘、记忆事实/时间线 lineage 等),把「成稿 ↔ 对话/记忆」的溯源信息落到表结构里。 业务链路:会话与 WS、回忆录/故事流水线、记忆写入与 enrichment 等跟着接上线索与快照;新增章节证据快照与评测侧 EvalTraceService 等模块,方便组评审用的证据包。 内部评测:自动化 run 与手工 memoir 评审共用可追溯证据;rubric/ judge 相关脚本与文档有配套调整。 app-eval-web:Memoir/实验详情里能展开看证据摘要与 evidence_trace(含对话轮次 id);Vite 代理与 development.sh 注入的 API 端口与当前默认内部评测端口一致,避免改端口后页面连错服务。 工程杂项:GitHub Actions / 仓库说明有更新;各适配器与支付/配额/plan 等多处为小改动或跟随主改动的收尾;新增/扩充了?
40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
"""pytest 共享fixtures 与约定入口(可按 backend-testing-strategy 逐步扩展)。"""
|
||
|
||
from __future__ import annotations
|
||
|
||
import uuid
|
||
from datetime import datetime, timezone
|
||
from typing import Callable
|
||
|
||
import pytest
|
||
|
||
from app.features.user.models import User
|
||
|
||
|
||
@pytest.fixture
|
||
def unique_phone() -> str:
|
||
"""避免与测试库中已存在手机号冲突(11 位)。"""
|
||
return f"138{uuid.uuid4().int % 100_000_000:08d}"
|
||
|
||
|
||
@pytest.fixture
|
||
def make_test_user(unique_phone: str) -> Callable[..., User]:
|
||
"""工厂:构造仅用于响应序列化的 User 行(未入库)。"""
|
||
|
||
def _make(
|
||
*,
|
||
user_id: str | None = None,
|
||
phone: str | None = None,
|
||
nickname: str = "测试用户",
|
||
) -> User:
|
||
return User(
|
||
id=user_id or str(uuid.uuid4()),
|
||
phone=phone or unique_phone,
|
||
password_hash="x",
|
||
nickname=nickname,
|
||
subscription_type="free",
|
||
created_at=datetime.now(timezone.utc),
|
||
)
|
||
|
||
return _make
|