muse-agent-example/tests/集成/test_幂等与审阅版本.py

53 lines
1.9 KiB
Python

"""命令幂等与审阅版本:同命令重放同回执、章后任务不重复、异参数拒绝。"""
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"