"""命令幂等与审阅版本:同命令重放同回执、章后任务不重复、异参数拒绝。""" import pytest from muse.共享.错误 import Muse错误 from muse.正文写作.接口 import 文本节点, 正文草稿, 段落 pytestmark = pytest.mark.数据库 def test_同命令重放同回执且章后任务不重复__16b011(章后环境, 章后工具): 环境 = 章后环境 环境["剧本"].append(章后工具.抽取输出("幂等摘要。", [])) 任务1, 回执1 = 章后工具.保存一章("ch-1", "林深在码头。雨停了。", 命令="idem-save-1") 章后工具.跑任务(任务1) # 完全相同的命令重放:返回既有回执,不再创建第二个章后任务。 回执2 = ( 环境["装配"] .要求正文() .保存人工( 环境["作者"], "idem-save-1", "ch-1", 0, 正文草稿((段落("ch-1-p1", (文本节点("林深在码头。雨停了。"),)),)), ) ) assert 回执2["receipt_id"] == 回执1["receipt_id"] 任务集 = { s.任务ID for s in 环境["装配"].任务运行.列出任务(环境["作者"].作者) if s.流程.流程ID == "章后处理" } assert len(任务集) == 1 def test_同命令异参数拒绝__16b022(章后环境, 章后工具): 环境 = 章后环境 from muse.正文写作.接口 import 文本节点, 正文草稿, 段落 环境["剧本"].append(章后工具.抽取输出("首次摘要。", [])) 章后工具.保存一章("ch-1", "第一版内容。", 命令="idem-save-x") with pytest.raises(Muse错误) as 异常: 环境["装配"].要求正文().保存人工( 环境["作者"], "idem-save-x", "ch-1", 0, 正文草稿((段落("ch-1-p1", (文本节点("不同的内容。"),)),)), ) assert 异常.value.错误码 == "COMMAND_PAYLOAD_MISMATCH"