diff --git a/tests/单元/test_声音与规则合同.py b/tests/单元/test_声音与规则合同.py index 4d94624..4e79782 100644 --- a/tests/单元/test_声音与规则合同.py +++ b/tests/单元/test_声音与规则合同.py @@ -582,3 +582,155 @@ def test_已确认声音内容作为写手唯一通道__cb0440(): (_样张(),), 角色归属={"甲": ["嗯"]}, ) + + +@pytest.mark.case_id( + "TC-0587dbd22c64", + environment="离线纯规则", + when="持久化、重验或查询诊断、声音、规则与案例。", + contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", +) +def test_规则身份重复被公开合同拒绝__0587db(): + from muse.审校修订.接口 import 核对规则库, 读取内置规则 + + 库 = 读取内置规则() + 规则 = list(库["rules"].values()) + with pytest.raises(Muse错误, match="重复"): + 核对规则库([*规则, 规则[0]], list(库["samples"].values())) + + +@pytest.mark.case_id( + "TC-c45d9e768e76", + environment="离线纯规则", + when="持久化、重验或查询诊断、声音、规则与案例。", + contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", +) +def test_内置规则与所有四类例证经同一合同校验__c45d9e(): + from muse.审校修订.接口 import 核对规则库, 读取内置规则 + + 库 = 读取内置规则() + 重验 = 核对规则库(list(库["rules"].values()), list(库["samples"].values())) + assert 重验 == 库 + assert {sample["type"] for sample in 库["samples"].values()} == { + "sf", + "snf", + "boundary", + "regression", + } + + +@pytest.mark.case_id( + "TC-02fcb3e5524a", + environment="离线纯规则", + when="持久化、重验或查询诊断、声音、规则与案例。", + contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", +) +def test_内置发布规则全部仅为候选__02fcb3(): + from muse.审校修订.接口 import 读取内置规则 + + 库 = 读取内置规则() + assert 库["rules"] and all(rule["status"] == "candidate" for rule in 库["rules"].values()) + + +@pytest.mark.case_id( + "TC-9efb708e26f6", + environment="离线纯合同", + when="持久化、重验或查询诊断、声音、规则与案例。", + contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", +) +def test_审校CLI默认走数据库而离线需显式指定__9efb70(): + import inspect + + from muse.接入.cli.审校命令 import 运行审校命令 + + assert inspect.signature(运行审校命令).parameters["离线"].default is False + + +@pytest.mark.case_id( + "TC-477b4a572369", + environment="离线纯合同", + when="持久化、重验或查询诊断、声音、规则与案例。", + contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", +) +def test_CLI离线是诊断和修订回放的显式逃生口__477b4a(tmp_path): + import json + + from muse.共享.错误 import 配置错误 + from muse.接入.cli.审校命令 import 运行审校命令 + + 路径 = tmp_path / "offline.json" + 路径.write_text(json.dumps({"text": "值得注意的是。", "work_id": "work-a"}, ensure_ascii=False)) + with pytest.raises(配置错误, match="离线模式仅用于"): + 运行审校命令(None, "案例清单", str(路径), 离线=True) + assert 运行审校命令(None, "诊断", str(路径), 离线=True)["persisted"] is False + + +@pytest.mark.case_id( + "TC-10cdc16e5ad7", + environment="离线纯合同", + when="持久化、重验或查询诊断、声音、规则与案例。", + contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", +) +def test_离线诊断不写数据库且明示未持久化__10cdc1(tmp_path): + import json + + from muse.接入.cli.审校命令 import 运行审校命令 + + 路径 = tmp_path / "receipt.json" + 路径.write_text(json.dumps({"text": "值得注意的是。", "work_id": "work-a"}, ensure_ascii=False)) + 报告 = 运行审校命令(None, "诊断", str(路径), 离线=True) + assert 报告["persisted"] is False and 报告["mode"] == "candidate_preview" + assert 报告["work_id"] == "work-a" + + +@pytest.mark.case_id( + "TC-5cd6b80a3e5e", + environment="离线,固定样张、规则和四类反例", + when="生成声音草案、投影保护项或验证规则候选。", + contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", +) +def test_CLI离线诊断不触数据库且明示未持久化__5cd6b8(tmp_path): + import json + + from muse.接入.cli.审校命令 import 运行审校命令 + + 路径 = tmp_path / "offline-diag.json" + 路径.write_text(json.dumps({"text": "值得注意的是。", "work_id": "work-a"}, ensure_ascii=False)) + 报告 = 运行审校命令(None, "诊断", str(路径), 离线=True) + assert 报告["persisted"] is False and 报告["mode"] == "candidate_preview" + + +@pytest.mark.case_id( + "NC-w26-26d103", + environment="离线纯合同", + given="固定请求、来源与作者;按用例环境准备独立测试输入", + when="通过实际公开入口执行并核对拒绝、状态及持久结果", + then=["旧方法改进请求固定字节不增加规则默认字段"], + contract="docs/系统架构/新版设计/模块设计/B07-作者经验.md#有来源的运行观察", +) +def test_旧方法改进请求固定字节不增加规则默认字段__26d103(): + from dataclasses import asdict + + from muse.作者经验.接口 import 改进请求 + from muse.正式变更.接口 import 固定哈希 + + request = 改进请求( + "11111111-1111-1111-1111-111111111111", + 0, + "旧方法标题", + "旧方法理由", + "22222222-2222-2222-2222-222222222222", + ("33333333-3333-3333-3333-333333333333",), + ) + assert set(asdict(request)) == { + "improvement_id", + "expected_revision", + "title", + "rationale", + "method_version_id", + "feedback_ids", + } + assert ( + 固定哈希(asdict(request)) + == "8c3b0f01e086c99906c9a5e239ea82c26a9b612badb05c234a2465f7c645d955" + ) diff --git a/tests/契约/test_盲评与引文合同.py b/tests/契约/test_盲评与引文合同.py index 387ec35..4e2dec5 100644 --- a/tests/契约/test_盲评与引文合同.py +++ b/tests/契约/test_盲评与引文合同.py @@ -1325,3 +1325,47 @@ def test_deblind_uses_preregistered_mapping_not_position__125ee8(): assert result["status"] == "stable_report" assert {score["candidate_id"] for score in result["scores"]} == {"blind-1", "blind-2"} assert len(result["scores"]) == 10 + + +def _盲评请求载荷(**覆盖): + from decimal import Decimal + + 载荷 = dict( + dataset_version_id="b0473aae-56d1-4485-9f6e-49042b02b130", + dataset_hash="0" * 64, + split="holdout", + target={ + "kind": "method", + "target_ref": "B04.method:x", + "version": "1", + "content_hash": "0" * 64, + }, + generator_role="writer", + generator={"config_id": "aa000000-0000-4000-8000-000000000001", "version": "1"}, + judges=({"config_id": "aa000000-0000-4000-8000-000000000002", "version": "1"},), + arms=("original", "candidate"), + dimensions=("清晰度",), + max_cost_usd=Decimal("1.0"), + max_calls_per_sample=3, + max_judge_corrections=1, + ) + 载荷.update(覆盖) + return 载荷 + + +@pytest.mark.case_id( + "TC-9ccd856d98b6", + environment="离线,匿名样本、独立评委替身", + when="匿名分配样本、校验逐维引文并处理评委分歧。", + contract="docs/系统架构/新版设计/模块设计/B10-效果评测.md", +) +def test_盲评合同拒绝未知模式或外泄身份字段__9ccd85(): + """未知比较模式与未登记 mode 字段在创建实验前即被合同拒绝(fail closed)。""" + from pydantic import TypeAdapter, ValidationError + + from muse.效果评测.实验条件 import 实验请求 as 盲评实验请求 + + with pytest.raises(ValidationError): + TypeAdapter(盲评实验请求).validate_python(_盲评请求载荷(comparison_profile="unknown_mode")) + with pytest.raises(ValidationError): + TypeAdapter(盲评实验请求).validate_python(_盲评请求载荷(mode="round_robin")) diff --git a/tests/用例清单.json b/tests/用例清单.json index 0bc70c0..7547a33 100644 --- a/tests/用例清单.json +++ b/tests/用例清单.json @@ -657,7 +657,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -666,8 +667,7 @@ "隔离数据库URL" ], "markers": [ - "数据库", - "网络" + "数据库" ] }, { @@ -5649,7 +5649,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "快照环境", "数据库底座", "测试资源接缝", @@ -6265,6 +6264,25 @@ ], "markers": [] }, + { + "case_id": "NC-database-baseline-unit-15", + "file": "tests/单元/test_数据库底座生命周期.py", + "symbol": "test_共享库同指纹复用同一库且例间清空业务数据", + "parameter_ids": [], + "node_ids": [ + "tests/单元/test_数据库底座生命周期.py::test_共享库同指纹复用同一库且例间清空业务数据" + ], + "fixtures": [ + "request", + "tmp_path", + "tmp_path_factory", + "测试资源接缝", + "源码资源", + "环境", + "离线防护" + ], + "markers": [] + }, { "case_id": "NC-db-cli-assembly", "environment": "隔离 PostgreSQL", @@ -11095,11 +11113,11 @@ }, { "case_id": "NC-raw-orphan-cleanup-recovery", - "environment": "真实隔离PG、受控目录与确定性触发器故障注入", - "given": "本命名空间无租约对象,PG触发器拒绝清理完成写回", - "when": "首次物理删除后确认失败,再取消故障并恢复", + "environment": "真实隔离PG与受控目录", + "given": "本命名空间无租约对象与一个有效租约", + "when": "经旧维护入口盘点无租约暂存并重复盘点", "then": [ - "意图已可靠保留;重试沿用回执确认对象已不存在,不补造首次成功,活跃原文保留" + "只登记待人工核对对象:不写清理意图、不删字节、不伪造清理回执;重复盘点结果一致,活跃原文保留" ], "contract": "docs/系统架构/新版设计/接口契约/原文证据生命周期.md", "file": "tests/集成/test_原文归档与恢复.py", @@ -15186,7 +15204,6 @@ "内置种子方案", "内置结构测试库", "变化", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -19103,7 +19120,8 @@ "tmp_path_factory", "全文报告环境", "全文生成环境", - "应用测试库", + "内置种子方案", + "内置结构测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -19269,7 +19287,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -21135,7 +21152,6 @@ "修订环境", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "比较环境", "测试资源接缝", @@ -21171,7 +21187,6 @@ "修订环境", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "比较环境", "测试资源接缝", @@ -21292,7 +21307,6 @@ "修订环境", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "比较环境", "测试资源接缝", @@ -21328,7 +21342,6 @@ "修订环境", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "比较环境", "测试资源接缝", @@ -22953,7 +22966,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -22985,7 +22999,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23017,7 +23032,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23049,7 +23065,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23086,7 +23103,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23119,7 +23137,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23151,7 +23170,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23183,7 +23203,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23215,7 +23236,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23256,7 +23278,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23291,7 +23314,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23324,7 +23348,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23358,7 +23383,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23413,7 +23439,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23424,6 +23451,7 @@ "markers": [ "parametrize", "timeout", + "慢", "数据库", "浏览器" ] @@ -23450,7 +23478,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23483,7 +23512,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23516,7 +23546,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -23565,7 +23594,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -23605,7 +23633,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -23640,7 +23667,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -23674,7 +23700,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -23712,7 +23737,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23755,7 +23779,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23795,7 +23818,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23835,7 +23857,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23875,7 +23896,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23911,7 +23931,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -23987,7 +24008,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24020,7 +24042,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24052,7 +24075,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24091,7 +24115,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24124,7 +24149,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24163,7 +24189,8 @@ "script", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24196,7 +24223,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24228,7 +24256,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24267,7 +24296,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24300,7 +24330,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24332,7 +24363,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24537,7 +24569,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24575,7 +24608,8 @@ "script", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24610,7 +24644,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24645,7 +24680,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24680,7 +24716,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24715,7 +24752,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24750,7 +24788,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24785,7 +24824,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24822,7 +24862,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24859,7 +24898,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24894,7 +24934,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24950,7 +24991,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -24983,7 +25025,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -25017,7 +25058,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -25051,7 +25091,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -25085,7 +25124,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -25119,7 +25157,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -25155,7 +25192,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -25190,7 +25226,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25231,7 +25268,8 @@ "tmp_path", "tmp_path_factory", "variant", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25275,7 +25313,8 @@ "tmp_path", "tmp_path_factory", "variant", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25310,7 +25349,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25348,7 +25388,8 @@ "tmp_path", "tmp_path_factory", "variant", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25386,7 +25427,8 @@ "sealed", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25421,7 +25463,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25536,7 +25579,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25571,7 +25615,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25606,7 +25651,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25641,7 +25687,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25676,7 +25723,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25711,7 +25759,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25746,7 +25795,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25786,7 +25836,8 @@ "tmp_path", "tmp_path_factory", "variant", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25821,7 +25872,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25861,7 +25913,8 @@ "tmp_path", "tmp_path_factory", "variant", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25899,7 +25952,8 @@ "stage", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25934,7 +25988,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -25972,7 +26027,8 @@ "tmp_path", "tmp_path_factory", "variant", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26007,7 +26063,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26151,7 +26208,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26186,7 +26244,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26221,7 +26280,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26256,7 +26316,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26291,7 +26352,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26326,7 +26388,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26361,7 +26424,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26552,7 +26616,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26590,7 +26655,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26627,7 +26693,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26666,7 +26731,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26705,7 +26769,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -26880,7 +26943,6 @@ "内置种子方案", "内置结构测试库", "合成HTTP", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -26924,7 +26986,6 @@ "内置种子方案", "内置结构测试库", "合成HTTP", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -26961,7 +27022,6 @@ "内置种子方案", "内置结构测试库", "合成HTTP", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -26996,7 +27056,6 @@ "内置种子方案", "内置结构测试库", "合成HTTP", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -27031,7 +27090,6 @@ "内置种子方案", "内置结构测试库", "合成HTTP", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -27066,7 +27124,6 @@ "内置种子方案", "内置结构测试库", "合成HTTP", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -27102,7 +27159,6 @@ "内置种子方案", "内置结构测试库", "合成HTTP", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -27137,7 +27193,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法对照环境", @@ -27184,7 +27239,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法对照环境", @@ -27221,7 +27275,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法对照环境", @@ -27257,7 +27310,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法对照环境", @@ -27293,7 +27345,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法对照环境", @@ -27329,7 +27380,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法对照环境", @@ -27365,7 +27415,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法对照环境", @@ -27401,7 +27450,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法对照环境", @@ -27439,7 +27487,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法对照环境", @@ -27478,7 +27525,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法环境", @@ -27490,6 +27536,7 @@ "markers": [ "parametrize", "timeout", + "慢", "数据库" ] }, @@ -28236,7 +28283,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法环境", @@ -28248,6 +28294,7 @@ "markers": [ "parametrize", "timeout", + "慢", "数据库" ] }, @@ -28275,7 +28322,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "方法环境", @@ -28441,7 +28487,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -28475,7 +28520,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -28490,18 +28534,18 @@ }, { "case_id": "NC-w26-26d103", - "environment": "隔离PG/合成HTTP及浏览器", + "environment": "离线纯合同", "given": "固定请求、来源与作者;按用例环境准备独立测试输入", "when": "通过实际公开入口执行并核对拒绝、状态及持久结果", "then": [ "旧方法改进请求固定字节不增加规则默认字段" ], "contract": "docs/系统架构/新版设计/模块设计/B07-作者经验.md#有来源的运行观察", - "file": "tests/集成/test_规则改进与回执.py", + "file": "tests/单元/test_声音与规则合同.py", "symbol": "test_旧方法改进请求固定字节不增加规则默认字段__26d103", "parameter_ids": [], "node_ids": [ - "tests/集成/test_规则改进与回执.py::test_旧方法改进请求固定字节不增加规则默认字段__26d103" + "tests/单元/test_声音与规则合同.py::test_旧方法改进请求固定字节不增加规则默认字段__26d103" ], "fixtures": [ "request", @@ -28509,9 +28553,7 @@ "源码资源", "离线防护" ], - "markers": [ - "数据库" - ] + "markers": [] }, { "case_id": "NC-w26-26d104", @@ -28534,7 +28576,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -28568,7 +28609,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -31017,7 +31057,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "新空目标库", "测试资源接缝", @@ -32672,7 +32711,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -32687,14 +32727,14 @@ }, { "case_id": "TC-02fcb3e5524a", - "environment": "隔离 PostgreSQL,检测替身", + "environment": "离线纯规则", "when": "持久化、重验或查询诊断、声音、规则与案例。", "contract": "docs/系统架构/新版设计/模块设计/B06-审校修订.md", - "file": "tests/集成/test_审校报告与案例持久化.py", + "file": "tests/单元/test_声音与规则合同.py", "symbol": "test_内置发布规则全部仅为候选__02fcb3", "parameter_ids": [], "node_ids": [ - "tests/集成/test_审校报告与案例持久化.py::test_内置发布规则全部仅为候选__02fcb3" + "tests/单元/test_声音与规则合同.py::test_内置发布规则全部仅为候选__02fcb3" ], "fixtures": [ "request", @@ -32702,9 +32742,7 @@ "源码资源", "离线防护" ], - "markers": [ - "数据库" - ] + "markers": [] }, { "case_id": "TC-031c01997996", @@ -32763,14 +32801,14 @@ }, { "case_id": "TC-0587dbd22c64", - "environment": "隔离 PostgreSQL,检测替身", + "environment": "离线纯规则", "when": "持久化、重验或查询诊断、声音、规则与案例。", "contract": "docs/系统架构/新版设计/模块设计/B06-审校修订.md", - "file": "tests/集成/test_审校报告与案例持久化.py", + "file": "tests/单元/test_声音与规则合同.py", "symbol": "test_规则身份重复被公开合同拒绝__0587db", "parameter_ids": [], "node_ids": [ - "tests/集成/test_审校报告与案例持久化.py::test_规则身份重复被公开合同拒绝__0587db" + "tests/单元/test_声音与规则合同.py::test_规则身份重复被公开合同拒绝__0587db" ], "fixtures": [ "request", @@ -32778,9 +32816,7 @@ "源码资源", "离线防护" ], - "markers": [ - "数据库" - ] + "markers": [] }, { "case_id": "TC-0766daae232f", @@ -33151,7 +33187,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -33162,6 +33199,7 @@ "markers": [ "parametrize", "timeout", + "慢", "数据库" ] }, @@ -33196,14 +33234,14 @@ }, { "case_id": "TC-10cdc16e5ad7", - "environment": "隔离 PostgreSQL,检测替身", + "environment": "离线纯合同", "when": "持久化、重验或查询诊断、声音、规则与案例。", "contract": "docs/系统架构/新版设计/模块设计/B06-审校修订.md", - "file": "tests/集成/test_审校报告与案例持久化.py", + "file": "tests/单元/test_声音与规则合同.py", "symbol": "test_离线诊断不写数据库且明示未持久化__10cdc1", "parameter_ids": [], "node_ids": [ - "tests/集成/test_审校报告与案例持久化.py::test_离线诊断不写数据库且明示未持久化__10cdc1" + "tests/单元/test_声音与规则合同.py::test_离线诊断不写数据库且明示未持久化__10cdc1" ], "fixtures": [ "request", @@ -33213,9 +33251,7 @@ "源码资源", "离线防护" ], - "markers": [ - "数据库" - ] + "markers": [] }, { "case_id": "TC-125b0ca098ec", @@ -33333,7 +33369,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -33344,6 +33381,7 @@ "markers": [ "parametrize", "timeout", + "慢", "数据库" ] }, @@ -33512,7 +33550,8 @@ "tmp_path", "tmp_path_factory", "variant", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -33841,7 +33880,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -33973,7 +34013,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -34637,7 +34678,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -35122,7 +35164,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -35504,7 +35547,6 @@ "修订环境", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "比较环境", "测试资源接缝", @@ -35519,14 +35561,14 @@ }, { "case_id": "TC-477b4a572369", - "environment": "隔离 PostgreSQL,检测替身", + "environment": "离线纯合同", "when": "持久化、重验或查询诊断、声音、规则与案例。", "contract": "docs/系统架构/新版设计/模块设计/B06-审校修订.md", - "file": "tests/集成/test_审校报告与案例持久化.py", + "file": "tests/单元/test_声音与规则合同.py", "symbol": "test_CLI离线是诊断和修订回放的显式逃生口__477b4a", "parameter_ids": [], "node_ids": [ - "tests/集成/test_审校报告与案例持久化.py::test_CLI离线是诊断和修订回放的显式逃生口__477b4a" + "tests/单元/test_声音与规则合同.py::test_CLI离线是诊断和修订回放的显式逃生口__477b4a" ], "fixtures": [ "request", @@ -35536,9 +35578,7 @@ "源码资源", "离线防护" ], - "markers": [ - "数据库" - ] + "markers": [] }, { "case_id": "TC-478d7e025686", @@ -36032,7 +36072,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -36230,11 +36271,11 @@ "environment": "离线,固定样张、规则和四类反例", "when": "生成声音草案、投影保护项或验证规则候选。", "contract": "docs/系统架构/新版设计/模块设计/B06-审校修订.md", - "file": "tests/集成/test_审校报告与案例持久化.py", + "file": "tests/单元/test_声音与规则合同.py", "symbol": "test_CLI离线诊断不触数据库且明示未持久化__5cd6b8", "parameter_ids": [], "node_ids": [ - "tests/集成/test_审校报告与案例持久化.py::test_CLI离线诊断不触数据库且明示未持久化__5cd6b8" + "tests/单元/test_声音与规则合同.py::test_CLI离线诊断不触数据库且明示未持久化__5cd6b8" ], "fixtures": [ "request", @@ -36244,9 +36285,7 @@ "源码资源", "离线防护" ], - "markers": [ - "数据库" - ] + "markers": [] }, { "case_id": "TC-5d7edda75476", @@ -36389,7 +36428,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -36500,7 +36540,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -36708,7 +36749,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -36762,7 +36804,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -36997,7 +37040,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -37176,7 +37220,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -37528,7 +37573,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -38056,7 +38102,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -38165,7 +38212,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -38544,7 +38592,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -38740,7 +38789,6 @@ "修订环境", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "比较环境", "测试资源接缝", @@ -38775,7 +38823,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -38933,11 +38982,11 @@ "environment": "离线,匿名样本、独立评委替身", "when": "匿名分配样本、校验逐维引文并处理评委分歧。", "contract": "docs/系统架构/新版设计/模块设计/B10-效果评测.md", - "file": "tests/集成/test_评测执行与失败收敛.py", + "file": "tests/契约/test_盲评与引文合同.py", "symbol": "test_盲评合同拒绝未知模式或外泄身份字段__9ccd85", "parameter_ids": [], "node_ids": [ - "tests/集成/test_评测执行与失败收敛.py::test_盲评合同拒绝未知模式或外泄身份字段__9ccd85" + "tests/契约/test_盲评与引文合同.py::test_盲评合同拒绝未知模式或外泄身份字段__9ccd85" ], "fixtures": [ "request", @@ -38945,9 +38994,7 @@ "源码资源", "离线防护" ], - "markers": [ - "数据库" - ] + "markers": [] }, { "case_id": "TC-9cdea0d7f385", @@ -39049,14 +39096,14 @@ }, { "case_id": "TC-9efb708e26f6", - "environment": "隔离 PostgreSQL,检测替身", + "environment": "离线纯合同", "when": "持久化、重验或查询诊断、声音、规则与案例。", "contract": "docs/系统架构/新版设计/模块设计/B06-审校修订.md", - "file": "tests/集成/test_审校报告与案例持久化.py", + "file": "tests/单元/test_声音与规则合同.py", "symbol": "test_审校CLI默认走数据库而离线需显式指定__9efb70", "parameter_ids": [], "node_ids": [ - "tests/集成/test_审校报告与案例持久化.py::test_审校CLI默认走数据库而离线需显式指定__9efb70" + "tests/单元/test_声音与规则合同.py::test_审校CLI默认走数据库而离线需显式指定__9efb70" ], "fixtures": [ "request", @@ -39064,9 +39111,7 @@ "源码资源", "离线防护" ], - "markers": [ - "数据库" - ] + "markers": [] }, { "case_id": "TC-9f437af4761f", @@ -39385,7 +39430,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -39583,7 +39629,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -39640,7 +39687,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -40182,7 +40230,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -40248,7 +40297,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -40654,7 +40704,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -40923,7 +40974,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -41088,14 +41140,14 @@ }, { "case_id": "TC-c45d9e768e76", - "environment": "隔离 PostgreSQL,检测替身", + "environment": "离线纯规则", "when": "持久化、重验或查询诊断、声音、规则与案例。", "contract": "docs/系统架构/新版设计/模块设计/B06-审校修订.md", - "file": "tests/集成/test_审校报告与案例持久化.py", + "file": "tests/单元/test_声音与规则合同.py", "symbol": "test_内置规则与所有四类例证经同一合同校验__c45d9e", "parameter_ids": [], "node_ids": [ - "tests/集成/test_审校报告与案例持久化.py::test_内置规则与所有四类例证经同一合同校验__c45d9e" + "tests/单元/test_声音与规则合同.py::test_内置规则与所有四类例证经同一合同校验__c45d9e" ], "fixtures": [ "request", @@ -41103,9 +41155,7 @@ "源码资源", "离线防护" ], - "markers": [ - "数据库" - ] + "markers": [] }, { "case_id": "TC-c4cde790f809", @@ -41557,7 +41607,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -41840,7 +41891,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -42124,7 +42176,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -42163,7 +42214,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -42202,7 +42252,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -42264,7 +42313,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -42302,7 +42350,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -42341,7 +42388,6 @@ "tmp_path_factory", "内置种子方案", "内置结构测试库", - "应用测试库", "数据库底座", "测试资源接缝", "源码资源", @@ -42471,7 +42517,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -43143,7 +43190,8 @@ "request", "tmp_path", "tmp_path_factory", - "应用测试库", + "内置种子方案", + "内置结构测试库", "执行环境", "数据库底座", "测试资源接缝", @@ -43539,18 +43587,18 @@ "file": "tests/迁移/test_隔离目标台账.py", "symbol": "test_删除别名向量拒绝与撤权仅保历史__21d005", "parameter_ids": [ - "example_knowledge_embedding-原行2-inactive_history", - "example_upgrade_alias-原行1-inactive_history", - "muse_knowledge_draft-原行3-inactive_history", - "muse_knowledge_draft-原行4-source_revoked", - "muse_knowledge_entity-原行0-inactive_history" + "example_knowledge_embedding-原行2-inactive_history-historical", + "example_upgrade_alias-原行1-unknown_table-quarantined", + "muse_knowledge_draft-原行3-inactive_history-historical", + "muse_knowledge_draft-原行4-source_revoked-historical", + "muse_knowledge_entity-原行0-inactive_history-historical" ], "node_ids": [ - "tests/迁移/test_隔离目标台账.py::test_删除别名向量拒绝与撤权仅保历史__21d005[example_knowledge_embedding-原行2-inactive_history]", - "tests/迁移/test_隔离目标台账.py::test_删除别名向量拒绝与撤权仅保历史__21d005[example_upgrade_alias-原行1-inactive_history]", - "tests/迁移/test_隔离目标台账.py::test_删除别名向量拒绝与撤权仅保历史__21d005[muse_knowledge_draft-原行3-inactive_history]", - "tests/迁移/test_隔离目标台账.py::test_删除别名向量拒绝与撤权仅保历史__21d005[muse_knowledge_draft-原行4-source_revoked]", - "tests/迁移/test_隔离目标台账.py::test_删除别名向量拒绝与撤权仅保历史__21d005[muse_knowledge_entity-原行0-inactive_history]" + "tests/迁移/test_隔离目标台账.py::test_删除别名向量拒绝与撤权仅保历史__21d005[example_knowledge_embedding-原行2-inactive_history-historical]", + "tests/迁移/test_隔离目标台账.py::test_删除别名向量拒绝与撤权仅保历史__21d005[example_upgrade_alias-原行1-unknown_table-quarantined]", + "tests/迁移/test_隔离目标台账.py::test_删除别名向量拒绝与撤权仅保历史__21d005[muse_knowledge_draft-原行3-inactive_history-historical]", + "tests/迁移/test_隔离目标台账.py::test_删除别名向量拒绝与撤权仅保历史__21d005[muse_knowledge_draft-原行4-source_revoked-historical]", + "tests/迁移/test_隔离目标台账.py::test_删除别名向量拒绝与撤权仅保历史__21d005[muse_knowledge_entity-原行0-inactive_history-historical]" ], "fixtures": [ "request", @@ -43562,6 +43610,7 @@ "测试数据库端点", "测试资源接缝", "源码资源", + "状态", "目标方法环境", "离线防护", "表", @@ -43783,10 +43832,10 @@ { "case_id": "TC-raw-orphan-scope", "environment": "真实隔离PostgreSQL、CLI与受控目录;假时钟只固定活跃租约", - "given": "本命名空间无租约孤儿、已登记租约、未知资料和另一个命名空间根", - "when": "经真实CLI扫描并清理,再次扫描并读取清理回执", + "given": "本命名空间无租约对象、已登记租约、未知资料和另一个命名空间根", + "when": "经真实CLI盘点无租约暂存并再次盘点", "then": [ - "只清理本命名空间无租约的合成孤儿;已登记对象、未知资料与其他命名空间不变,回执可读且重试不改旧回执" + "无租约对象只登记为待核对、不写意图不删字节;已登记对象、未知资料与其他命名空间不变,不伪造清理回执" ], "contract": "docs/系统架构/新版设计/接口契约/原文证据生命周期.md", "file": "tests/集成/test_原文归档与恢复.py", diff --git a/tests/集成/test_审校报告与案例持久化.py b/tests/集成/test_审校报告与案例持久化.py index 1c78414..6301ffd 100644 --- a/tests/集成/test_审校报告与案例持久化.py +++ b/tests/集成/test_审校报告与案例持久化.py @@ -20,7 +20,6 @@ from muse.审校修订.接口 import ( 声音提案请求, 声音样张引用, 审校错误, - 核对规则库, 案例复核请求, 案例定位, 案例来源, @@ -644,19 +643,6 @@ def test_规则缺少正例时在入库前失败关闭__e88dcd(章后环境): 章后环境["装配"].要求审校().导入规则候选(章后环境["作者"], 规则库=库) -@pytest.mark.case_id( - "TC-0587dbd22c64", - environment="隔离 PostgreSQL,检测替身", - when="持久化、重验或查询诊断、声音、规则与案例。", - contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", -) -def test_规则身份重复被公开合同拒绝__0587db(): - 库 = 读取内置规则() - 规则 = list(库["rules"].values()) - with pytest.raises(Muse错误, match="重复"): - 核对规则库([*规则, 规则[0]], list(库["samples"].values())) - - @pytest.mark.case_id( "TC-ac1163ea3657", environment="隔离 PostgreSQL,检测替身", @@ -1148,49 +1134,6 @@ def test_案例只在人工复核后投影成规则样例__41e876(四类案例): assert sample["source"] == "licensed" and sample["carrier"] == "mixed" -@pytest.mark.case_id( - "TC-c45d9e768e76", - environment="隔离 PostgreSQL,检测替身", - when="持久化、重验或查询诊断、声音、规则与案例。", - contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", -) -def test_内置规则与所有四类例证经同一合同校验__c45d9e(): - 库 = 读取内置规则() - 重验 = 核对规则库(list(库["rules"].values()), list(库["samples"].values())) - assert 重验 == 库 - assert {sample["type"] for sample in 库["samples"].values()} == { - "sf", - "snf", - "boundary", - "regression", - } - - -@pytest.mark.case_id( - "TC-02fcb3e5524a", - environment="隔离 PostgreSQL,检测替身", - when="持久化、重验或查询诊断、声音、规则与案例。", - contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", -) -def test_内置发布规则全部仅为候选__02fcb3(): - 库 = 读取内置规则() - assert 库["rules"] and all(rule["status"] == "candidate" for rule in 库["rules"].values()) - - -@pytest.mark.case_id( - "TC-9efb708e26f6", - environment="隔离 PostgreSQL,检测替身", - when="持久化、重验或查询诊断、声音、规则与案例。", - contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", -) -def test_审校CLI默认走数据库而离线需显式指定__9efb70(): - import inspect - - from muse.接入.cli.审校命令 import 运行审校命令 - - assert inspect.signature(运行审校命令).parameters["离线"].default is False - - @pytest.mark.case_id( "TC-b1ebdb636f6f", environment="隔离 PostgreSQL,检测替身", @@ -1214,23 +1157,6 @@ def test_CLI采集后自动进入数据库案例清单__b1ebdb(案例环境, tmp assert [c["case_id"] for c in 清单] == [回执["results"][0]["case_id"]] -@pytest.mark.case_id( - "TC-477b4a572369", - environment="隔离 PostgreSQL,检测替身", - when="持久化、重验或查询诊断、声音、规则与案例。", - contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", -) -def test_CLI离线是诊断和修订回放的显式逃生口__477b4a(tmp_path): - from muse.共享.错误 import 配置错误 - from muse.接入.cli.审校命令 import 运行审校命令 - - 路径 = tmp_path / "offline.json" - 路径.write_text(json.dumps({"text": "值得注意的是。", "work_id": "work-a"}, ensure_ascii=False)) - with pytest.raises(配置错误, match="离线模式仅用于"): - 运行审校命令(None, "案例清单", str(路径), 离线=True) - assert 运行审校命令(None, "诊断", str(路径), 离线=True)["persisted"] is False - - @pytest.mark.case_id( "TC-95a9024e5a4c", environment="隔离 PostgreSQL,检测替身", @@ -1286,22 +1212,6 @@ def test_案例重验直接读数据库不生成仓外边车文件__4b6ea1(案 assert not list(tmp_path.glob("*.inventory.json")) -@pytest.mark.case_id( - "TC-10cdc16e5ad7", - environment="隔离 PostgreSQL,检测替身", - when="持久化、重验或查询诊断、声音、规则与案例。", - contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", -) -def test_离线诊断不写数据库且明示未持久化__10cdc1(tmp_path): - from muse.接入.cli.审校命令 import 运行审校命令 - - 路径 = tmp_path / "receipt.json" - 路径.write_text(json.dumps({"text": "值得注意的是。", "work_id": "work-a"}, ensure_ascii=False)) - 报告 = 运行审校命令(None, "诊断", str(路径), 离线=True) - assert 报告["persisted"] is False and 报告["mode"] == "candidate_preview" - assert 报告["work_id"] == "work-a" - - @pytest.mark.case_id( "TC-fc782c51428f", environment="隔离 PostgreSQL,检测替身", @@ -1433,21 +1343,6 @@ def test_CLI诊断默认持久化且同一作者可读回__873f1d(诊断环境, 装配.配置 = 旧配置 -@pytest.mark.case_id( - "TC-5cd6b80a3e5e", - environment="离线,固定样张、规则和四类反例", - when="生成声音草案、投影保护项或验证规则候选。", - contract="docs/系统架构/新版设计/模块设计/B06-审校修订.md", -) -def test_CLI离线诊断不触数据库且明示未持久化__5cd6b8(tmp_path): - from muse.接入.cli.审校命令 import 运行审校命令 - - 路径 = tmp_path / "offline-diag.json" - 路径.write_text(json.dumps({"text": "值得注意的是。", "work_id": "work-a"}, ensure_ascii=False)) - 报告 = 运行审校命令(None, "诊断", str(路径), 离线=True) - assert 报告["persisted"] is False and 报告["mode"] == "candidate_preview" - - @pytest.mark.case_id( "TC-93daa381c03a", environment="离线,固定样张、规则和四类反例", diff --git a/tests/集成/test_规则改进与回执.py b/tests/集成/test_规则改进与回执.py index 543e7c0..98cfe27 100644 --- a/tests/集成/test_规则改进与回执.py +++ b/tests/集成/test_规则改进与回执.py @@ -1,6 +1,6 @@ """B07规则改进只登记意向;B10验证与B06审阅、启停、消费保持各自owner。""" -from dataclasses import asdict, replace +from dataclasses import replace from datetime import UTC, datetime, timedelta from uuid import uuid4 @@ -12,7 +12,6 @@ from muse.作者经验.接口 import ( 反馈版本, 反馈请求, 改进定位, - 改进请求, 规则启停请求, 规则改进请求, 规则验证请求, @@ -258,34 +257,3 @@ def test_异版他作者与空反馈不产生规则改进行动__26d102(规则 assert revised["revision"] == 2 historical = service.读取改进(env["author"], proposal.improvement_id, revision=1) assert historical["content_hash"] == point.content_hash - - -@pytest.mark.case_id( - "NC-w26-26d103", - environment="隔离PG/合成HTTP及浏览器", - given="固定请求、来源与作者;按用例环境准备独立测试输入", - when="通过实际公开入口执行并核对拒绝、状态及持久结果", - then=["旧方法改进请求固定字节不增加规则默认字段"], - contract="docs/系统架构/新版设计/模块设计/B07-作者经验.md#有来源的运行观察", -) -def test_旧方法改进请求固定字节不增加规则默认字段__26d103(): - request = 改进请求( - "11111111-1111-1111-1111-111111111111", - 0, - "旧方法标题", - "旧方法理由", - "22222222-2222-2222-2222-222222222222", - ("33333333-3333-3333-3333-333333333333",), - ) - assert set(asdict(request)) == { - "improvement_id", - "expected_revision", - "title", - "rationale", - "method_version_id", - "feedback_ids", - } - assert ( - 固定哈希(asdict(request)) - == "8c3b0f01e086c99906c9a5e239ea82c26a9b612badb05c234a2465f7c645d955" - ) diff --git a/tests/集成/test_评测执行与失败收敛.py b/tests/集成/test_评测执行与失败收敛.py index 524aff5..1e6fd29 100644 --- a/tests/集成/test_评测执行与失败收敛.py +++ b/tests/集成/test_评测执行与失败收敛.py @@ -1155,50 +1155,8 @@ def test_原始模型引文及派生位置分别持久化和核验__259001(执 # ---- 生产评测权限隔离线:7项盲评原观察 ---- -# 未知模式在创建实验前合同拒绝(fail closed);双评委真实派发链由基线 -# aee3df 承接(独立任务调用、盲化输入、模型各异、不共享报告),不重复写。 -from pydantic import TypeAdapter, ValidationError # noqa: E402 - -from muse.效果评测.实验条件 import 实验请求 as 盲评实验请求 # noqa: E402 - - -def _盲评请求载荷(**覆盖): - 载荷 = dict( - dataset_version_id="b0473aae-56d1-4485-9f6e-49042b02b130", - dataset_hash="0" * 64, - split="holdout", - target={ - "kind": "method", - "target_ref": "B04.method:x", - "version": "1", - "content_hash": "0" * 64, - }, - generator_role="writer", - generator={"config_id": "aa000000-0000-4000-8000-000000000001", "version": "1"}, - judges=({"config_id": "aa000000-0000-4000-8000-000000000002", "version": "1"},), - arms=("original", "candidate"), - dimensions=("清晰度",), - max_cost_usd=Decimal("1.0"), - max_calls_per_sample=3, - max_judge_corrections=1, - ) - 载荷.update(覆盖) - return 载荷 - - -@pytest.mark.case_id( - "TC-9ccd856d98b6", - environment="离线,匿名样本、独立评委替身", - when="匿名分配样本、校验逐维引文并处理评委分歧。", - contract="docs/系统架构/新版设计/模块设计/B10-效果评测.md", -) -@pytest.mark.数据库 -def test_盲评合同拒绝未知模式或外泄身份字段__9ccd85(): - """未知比较模式与未登记 mode 字段在创建实验前即被合同拒绝(fail closed)。""" - with pytest.raises(ValidationError): - TypeAdapter(盲评实验请求).validate_python(_盲评请求载荷(comparison_profile="unknown_mode")) - with pytest.raises(ValidationError): - TypeAdapter(盲评实验请求).validate_python(_盲评请求载荷(mode="round_robin")) +# 未知模式在创建实验前合同拒绝(fail closed,见 tests/契约/test_盲评与引文合同.py); +# 双评委真实派发链由基线 aee3df 承接(独立任务调用、盲化输入、模型各异、不共享报告),不重复写。 @pytest.mark.case_id(