实现侧: - 上下文:任务范围拆分为 范围校验/范围授权;索引按可发现口径重建、索引新鲜度改对称差;依赖校验统一快照漂移说明。 - 知识方法:方法与材料读取口径统一;超限方法材料按可选省略,核对路径不再二次计费;删除无合同的读时重算。 - 任务运行:新增 context.usage/tool.denied 事件类型;连接池常驻并在装配生命周期内开关;调用结算与核对分列。 - 效果评测/审校修订/交付连载/作者经验/作品规划:凭据冻结、标定消费、导出补证、事实引文核对等收尾修复。 - 资源加载:能力正文不再夹带索引用的导航注记(该注记此前进入角色与技能的模型提示)。 - 元数据:受保护骨架与代码保护属性对齐;字段校验与内置结构口径同步。 - 基础设施:环境预检进入装配生命周期;数据库连接运行期字段不参与相等比较;索引指纹归一化 jsonb 浮点。 - 删除被替代实现:7 份旧提示词模板与空壳 资料来源 读取器。 用例侧: - 用例身份与导航元信息迁移;夹具补生命周期、同库暴露与模板封存; - 本轮定向修复:方法材料省略、事实引文、迁移回执、额度与暂停用例、慢用例超时预算等。
63 lines
2.5 KiB
Python
63 lines
2.5 KiB
Python
"""合成私人暂存的排他发布、重复写入、字节、权限与清理边界。
|
||
|
||
任务中断后的恢复由任务运行集成套件验证;本文件不声明覆盖任务恢复。
|
||
"""
|
||
|
||
import hashlib
|
||
import os
|
||
import uuid
|
||
|
||
import pytest
|
||
|
||
from muse.基础设施.受控文件 import 受控文件, 受控文件错误
|
||
|
||
|
||
@pytest.mark.case_id(
|
||
"NC-private-bytes-atomic",
|
||
environment="离线临时目录",
|
||
given="独立私人目录与中文原文字节",
|
||
when="按不透明对象和哈希重复发布、读取再清理",
|
||
then=["字节和0600权限保留,异哈希拒绝,清理只删除该对象"],
|
||
contract="docs/系统架构/新版设计/接口契约/原文证据生命周期.md",
|
||
)
|
||
def test_内容哈希排他发布和重复写入保持字节__a80001(tmp_path) -> None:
|
||
管理器 = 受控文件(tmp_path / "私人暂存")
|
||
身份 = str(uuid.uuid4())
|
||
原文 = '中文"引号"\n换行\\反斜杠'.encode()
|
||
哈希 = hashlib.sha256(原文).hexdigest()
|
||
管理器.写入(身份, 哈希, 原文)
|
||
管理器.写入(身份, 哈希, 原文)
|
||
assert 管理器.读取(身份, 哈希) == 原文
|
||
assert (管理器.根 / 身份 / (哈希 + ".bin")).stat().st_mode & 0o777 == 0o600
|
||
with pytest.raises(受控文件错误):
|
||
管理器.写入(身份, 哈希, b"different")
|
||
管理器.删除对象(身份)
|
||
assert not (管理器.根 / 身份).exists()
|
||
|
||
|
||
@pytest.mark.case_id(
|
||
"NC-private-no-symlink",
|
||
environment="离线临时目录",
|
||
given="本对象含指向其他资料的软链接",
|
||
when="读取与清理该对象",
|
||
then=["拒绝软链接与越界身份,其他资料不变"],
|
||
contract="docs/系统架构/新版设计/接口契约/原文证据生命周期.md",
|
||
)
|
||
def test_软链接和未知资料不会被清理或跟随__a80002(tmp_path) -> None:
|
||
管理器 = 受控文件(tmp_path / "私人暂存")
|
||
身份 = str(uuid.uuid4())
|
||
原文 = b"synthetic"
|
||
哈希 = hashlib.sha256(原文).hexdigest()
|
||
管理器.写入(身份, 哈希, 原文)
|
||
外部 = tmp_path / "其他资料"
|
||
外部.write_bytes(b"preserve")
|
||
(管理器.根 / 身份 / (哈希 + ".bin")).unlink()
|
||
os.symlink(外部, 管理器.根 / 身份 / (哈希 + ".bin"))
|
||
with pytest.raises(受控文件错误):
|
||
管理器.读取(身份, 哈希)
|
||
with pytest.raises(受控文件错误):
|
||
管理器.删除对象(身份)
|
||
assert 外部.read_bytes() == b"preserve"
|
||
with pytest.raises(受控文件错误):
|
||
管理器.读取("../其他资料", 哈希)
|