实现侧: - 上下文:任务范围拆分为 范围校验/范围授权;索引按可发现口径重建、索引新鲜度改对称差;依赖校验统一快照漂移说明。 - 知识方法:方法与材料读取口径统一;超限方法材料按可选省略,核对路径不再二次计费;删除无合同的读时重算。 - 任务运行:新增 context.usage/tool.denied 事件类型;连接池常驻并在装配生命周期内开关;调用结算与核对分列。 - 效果评测/审校修订/交付连载/作者经验/作品规划:凭据冻结、标定消费、导出补证、事实引文核对等收尾修复。 - 资源加载:能力正文不再夹带索引用的导航注记(该注记此前进入角色与技能的模型提示)。 - 元数据:受保护骨架与代码保护属性对齐;字段校验与内置结构口径同步。 - 基础设施:环境预检进入装配生命周期;数据库连接运行期字段不参与相等比较;索引指纹归一化 jsonb 浮点。 - 删除被替代实现:7 份旧提示词模板与空壳 资料来源 读取器。 用例侧: - 用例身份与导航元信息迁移;夹具补生命周期、同库暴露与模板封存; - 本轮定向修复:方法材料省略、事实引文、迁移回执、额度与暂停用例、慢用例超时预算等。
151 lines
5.8 KiB
Python
151 lines
5.8 KiB
Python
"""目标操作的离线前置边界:无范围不连接,非空源只证明本次记录集。"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import json
|
|
|
|
import psycopg
|
|
import pytest
|
|
|
|
import 切换检查
|
|
from 入口 import main
|
|
from 导入新库 import 导入快照
|
|
from 建立映射 import 旧快照, 映射配置, 迁移错误
|
|
from 核对结果 import 核对迁移结果
|
|
|
|
|
|
def _快照():
|
|
return 旧快照.从载荷(
|
|
{
|
|
"source": {
|
|
"system": "sqlite",
|
|
"database": "synthetic-range",
|
|
"table": "runs",
|
|
"id": "1",
|
|
"revision": "export-v1",
|
|
},
|
|
"record": {"id": "1"},
|
|
}
|
|
)
|
|
|
|
|
|
@pytest.mark.case_id(
|
|
"TC-bf16cbbf63b1",
|
|
environment="离线合成快照与连接替身",
|
|
when="旧库分流或迁移目标检查",
|
|
contract="docs/系统架构/新版设计/数据模型/旧知识记录分流.md",
|
|
)
|
|
@pytest.mark.parametrize("操作", [导入快照, 核对迁移结果])
|
|
def test_目标服务空输入在读取装配与建联前拒绝__bf16cb(monkeypatch, 操作):
|
|
连接 = []
|
|
monkeypatch.setattr(psycopg, "connect", lambda *a, **k: 连接.append((a, k)))
|
|
with pytest.raises(迁移错误, match="snapshot_empty"):
|
|
操作(None, None, [], 映射配置({"works": []}), 允许实例=None, 管理引用=None, 目标回执=None)
|
|
assert 连接 == []
|
|
|
|
|
|
@pytest.mark.case_id(
|
|
"TC-887beeb51b19",
|
|
environment="离线合成快照与连接替身",
|
|
when="旧库分流或迁移目标检查",
|
|
contract="docs/系统架构/新版设计/数据模型/旧知识记录分流.md",
|
|
)
|
|
@pytest.mark.parametrize("基线空,当前空", [(True, True), (True, False), (False, True)])
|
|
def test_切换单双空在目标连接前拒绝__887bee(monkeypatch, 基线空, 当前空):
|
|
连接 = []
|
|
monkeypatch.setattr(psycopg, "connect", lambda *a, **k: 连接.append((a, k)))
|
|
with pytest.raises(迁移错误, match="snapshot_empty"):
|
|
切换检查.检查切换条件(
|
|
None,
|
|
None,
|
|
[] if 基线空 else [_快照()],
|
|
[] if 当前空 else [_快照()],
|
|
映射配置({"works": []}),
|
|
允许实例=None,
|
|
管理引用=None,
|
|
目标回执=None,
|
|
)
|
|
assert 连接 == []
|
|
|
|
|
|
@pytest.mark.case_id(
|
|
"TC-3d9da1b66b44",
|
|
environment="离线合成快照与连接替身",
|
|
when="旧库分流或迁移目标检查",
|
|
contract="docs/系统架构/新版设计/数据模型/旧知识记录分流.md",
|
|
)
|
|
@pytest.mark.parametrize("当前坏", [False, True])
|
|
@pytest.mark.parametrize("坏原行", [None, "[]", "{", '{"id":"another"}'])
|
|
def test_无来源范围的服务输入在目标连接前拒绝__3d9da1(monkeypatch, 当前坏, 坏原行):
|
|
坏 = {} if 坏原行 is None else 旧快照(_快照().source, 坏原行)
|
|
连接 = []
|
|
monkeypatch.setattr(psycopg, "connect", lambda *a, **k: 连接.append((a, k)))
|
|
with pytest.raises(迁移错误, match="snapshot_invalid|source_invalid"):
|
|
切换检查.检查切换条件(
|
|
None,
|
|
None,
|
|
[_快照()] if 当前坏 else [坏],
|
|
[坏] if 当前坏 else [_快照()],
|
|
映射配置({"works": []}),
|
|
允许实例=None,
|
|
管理引用=None,
|
|
目标回执=None,
|
|
)
|
|
assert 连接 == []
|
|
|
|
|
|
@pytest.mark.case_id(
|
|
"TC-4a4d097ecfd5",
|
|
environment="离线合成快照与连接替身",
|
|
when="旧库分流或迁移目标检查",
|
|
contract="docs/系统架构/新版设计/数据模型/旧知识记录分流.md",
|
|
)
|
|
@pytest.mark.parametrize(
|
|
"命令,基线空,当前空",
|
|
[
|
|
("导入目标", True, False),
|
|
("核对目标", True, False),
|
|
("切换检查", True, True),
|
|
("切换检查", True, False),
|
|
("切换检查", False, True),
|
|
],
|
|
)
|
|
def test_CLI空范围早于配置读取建联及输出__4a4d09(
|
|
tmp_path, monkeypatch, capsys, 命令, 基线空, 当前空
|
|
):
|
|
连接 = []
|
|
monkeypatch.setattr(psycopg, "connect", lambda *a, **k: 连接.append((a, k)))
|
|
基线, 当前 = tmp_path / "基线.json", tmp_path / "当前.json"
|
|
基线.write_text(json.dumps([] if 基线空 else [_快照().导出()]), encoding="utf-8")
|
|
当前.write_text(json.dumps([] if 当前空 else [_快照().导出()]), encoding="utf-8")
|
|
输出 = tmp_path / "报告.json"
|
|
参数 = [命令, "--快照", str(基线), "--输出", str(输出)]
|
|
for 键 in ("映射", "配置", "允许实例", "管理引用", "目标回执"):
|
|
参数 += ["--" + 键, str(tmp_path / (键 + ".不存在"))]
|
|
if 命令 == "切换检查":
|
|
参数 += ["--当前快照", str(当前)]
|
|
assert main(参数) == 1
|
|
assert "snapshot_empty" in capsys.readouterr().err
|
|
assert 连接 == [] and not 输出.exists()
|
|
|
|
|
|
@pytest.mark.case_id(
|
|
"TC-25b77b5582f9",
|
|
environment="离线合成快照与连接替身",
|
|
when="旧库分流或迁移目标检查",
|
|
contract="docs/系统架构/新版设计/数据模型/旧知识记录分流.md",
|
|
)
|
|
@pytest.mark.parametrize("有增量", [False, True])
|
|
def test_非空切换报告不授予生产与整包权限__25b77b(monkeypatch, 有增量):
|
|
monkeypatch.setattr(切换检查, "核对迁移结果", lambda *a, **k: {"data_checks_passed": True})
|
|
原 = _快照()
|
|
值 = 原.导出()
|
|
值["record"]["detail"] = "合成增量"
|
|
值.pop("source_hash")
|
|
当前 = 旧快照.从载荷(值) if 有增量 else 原
|
|
结果 = 切换检查.检查切换条件(None, None, [原], [当前], 映射配置({"works": []}))
|
|
assert 结果["data_checks_passed"] is (not 有增量)
|
|
assert 结果["source_delta"]["changed"] == ([原.source.对象键] if 有增量 else [])
|
|
assert 结果["production_switch_authorized"] is False
|
|
assert 结果["package_acceptance_claimed"] is False
|