- src/muse 新版全模块(装配/共享/上下文/任务运行/作品规划/故事世界/正文写作/审校修订/知识方法/作者经验/效果评测/交付连载/资料研究/正式变更/元数据/接入/基础设施/编排)+ 测试树(单元/契约/集成/架构/迁移/端到端/夹具) - 129 项功能全部实现与自动验证(功能覆盖.json/矩阵),含 W31 补齐的规则与代价/节奏安排/伏笔与承诺 - 旧实现按处置清单退出(702 条中 324 删,保护合同与未迁移条目留存有据);web/app.py 旧工作台退役,新工作台为唯一写入口 - 数据库/旧库迁移:真实旧库内容批次迁移链(端点守卫/PG作品正文映射/质量资产缺省投影) - 运行手册 docs/运行手册.md;W30 本机服务阶段一已运行(infra PG 为正式内容权威) - R2 执行证据与私有运行材料在 .agents.local/改造/R2-20260909/(不入库)
33 lines
1.2 KiB
Python
33 lines
1.2 KiB
Python
"""发布外壳不接收安全清单中的额外正文载荷,正文只经明确公开输入。"""
|
|
|
|
import pytest
|
|
from pydantic import ValidationError
|
|
|
|
from muse.效果评测.接口 import 数据集发布
|
|
|
|
|
|
def test_样本清单额外正文载荷在发布解析时拒绝__25f510():
|
|
request = {
|
|
"dataset_id": "synthetic-source-contract",
|
|
"revision": 1,
|
|
"samples": [
|
|
{
|
|
"sample_id": "sample",
|
|
"source_ref": "synthetic:source",
|
|
"source_groups": ["group"],
|
|
"license_ref": "synthetic:owned",
|
|
"split": "holdout",
|
|
"input": {"instruction": "合成任务", "original": "合成底稿", "context": {}},
|
|
"answer": {},
|
|
"candidateBody": "不属于此清单外壳的正文",
|
|
}
|
|
],
|
|
}
|
|
with pytest.raises(ValidationError) as caught:
|
|
数据集发布.model_validate(request)
|
|
assert (("samples", 0, "candidateBody"), "extra_forbidden") in [
|
|
(e["loc"], e["type"]) for e in caught.value.errors()
|
|
]
|
|
del request["samples"][0]["candidateBody"]
|
|
assert 数据集发布.model_validate(request).samples[0].sample_id == "sample"
|