- src/muse 新版全模块(装配/共享/上下文/任务运行/作品规划/故事世界/正文写作/审校修订/知识方法/作者经验/效果评测/交付连载/资料研究/正式变更/元数据/接入/基础设施/编排)+ 测试树(单元/契约/集成/架构/迁移/端到端/夹具) - 129 项功能全部实现与自动验证(功能覆盖.json/矩阵),含 W31 补齐的规则与代价/节奏安排/伏笔与承诺 - 旧实现按处置清单退出(702 条中 324 删,保护合同与未迁移条目留存有据);web/app.py 旧工作台退役,新工作台为唯一写入口 - 数据库/旧库迁移:真实旧库内容批次迁移链(端点守卫/PG作品正文映射/质量资产缺省投影) - 运行手册 docs/运行手册.md;W30 本机服务阶段一已运行(infra PG 为正式内容权威) - R2 执行证据与私有运行材料在 .agents.local/改造/R2-20260909/(不入库)
88 lines
3.7 KiB
Python
88 lines
3.7 KiB
Python
"""长期观察按确切改进版本分组,未知值与因果未定不被掩盖。"""
|
|
|
|
from dataclasses import replace
|
|
from uuid import uuid4
|
|
|
|
import pytest
|
|
import test_作者偏好与反馈 as 偏好测试
|
|
import test_具体改进与回执 as 改进测试
|
|
import test_方法启用凭据 as 启用测试
|
|
|
|
from muse.作者经验.接口 import 改进定位, 观察请求
|
|
from muse.共享.错误 import Muse错误
|
|
|
|
pytestmark = pytest.mark.数据库
|
|
环境 = 偏好测试.环境
|
|
候选环境 = 偏好测试.候选环境
|
|
方法环境 = 启用测试.方法环境
|
|
|
|
|
|
def test_观察未知指标不填零且自报不认证因果__26d001(环境):
|
|
service, author, _, feedback = 环境
|
|
fid = str(service.记录反馈(author, "feedback", feedback)["feedback_id"])
|
|
unknown = 观察请求((fid,), "尚未记录耗时和费用。")
|
|
saved = service.记录观察(author, "unknown", unknown)
|
|
assert service.记录观察(author, "unknown", unknown) == saved
|
|
summary = service.读取观察(author)["groups"][0]
|
|
assert all(m == {"known": 0, "unknown": 1, "total": None} for m in summary["metrics"].values())
|
|
service.记录观察(
|
|
author,
|
|
"known",
|
|
观察请求(
|
|
(fid,), "这次没有返工,费用为零。", review_seconds=30, rework_count=0, cost_usd="0"
|
|
),
|
|
)
|
|
report = service.读取观察(author)
|
|
assert report["groups"][0]["metrics"]["cost_usd"] == {"known": 1, "unknown": 1, "total": "0"}
|
|
assert report["groups"][0]["metrics"]["false_positives"]["total"] is None
|
|
assert report["groups"][0]["causality"] == "not_established"
|
|
assert all(
|
|
r["payload"]["measurement_source"] == "author_report" for r in report["observations"]
|
|
)
|
|
assert service.列出偏好(author) == []
|
|
|
|
|
|
def test_不同改进版本的长期观察不混算也不启用目标__26d002(方法环境):
|
|
env = 启用测试._确认方法({"actor": 方法环境[1]}, 方法环境)
|
|
service, request, point = 改进测试._提案(env)
|
|
service.记录观察(
|
|
env["owner"],
|
|
"first",
|
|
观察请求(
|
|
request.feedback_ids, "第一版耗时一分钟。", point, review_seconds=60, cost_usd="0.75"
|
|
),
|
|
)
|
|
revised = service.提出改进(
|
|
env["owner"], replace(request, expected_revision=1, rationale="第二版明确限制适用范围。")
|
|
)
|
|
other = 改进定位(request.improvement_id, revised["revision"], revised["content_hash"])
|
|
service.记录观察(
|
|
env["owner"],
|
|
"second",
|
|
观察请求(
|
|
request.feedback_ids, "第二版仍需复查。", other, review_seconds=120, false_positives=2
|
|
),
|
|
)
|
|
groups = service.读取观察(env["owner"], request.improvement_id)["groups"]
|
|
assert [g["revision"] for g in groups] == [1, 2]
|
|
assert [g["metrics"]["review_seconds"]["total"] for g in groups] == [60, 120]
|
|
assert groups[1]["metrics"]["cost_usd"]["total"] is None
|
|
assert service.读取改进(env["owner"], request.improvement_id)["target_state"] == "confirmed"
|
|
|
|
|
|
def test_观察拒绝假来源跨作者及无效指标__26d003(环境):
|
|
service, author, _, feedback = 环境
|
|
fid = str(service.记录反馈(author, "feedback", feedback)["feedback_id"])
|
|
for args in [
|
|
{"cost_usd": "NaN"},
|
|
{"cost_usd": "-1"},
|
|
{"review_seconds": -1},
|
|
{"rework_count": True},
|
|
]:
|
|
with pytest.raises(Muse错误):
|
|
观察请求((fid,), "观测原话", **args)
|
|
for who, source in [(author, str(uuid4())), (replace(author, 作者="stranger"), fid)]:
|
|
with pytest.raises(Muse错误):
|
|
service.记录观察(who, "invalid", 观察请求((source,), "需要真实来源。"))
|
|
assert service.读取观察(author)["observations"] == []
|