feat(v1): add demo runbook and release package
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
from pathlib import Path
|
||||
|
||||
from v1.release import build_release_package, main, sha256_file
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
|
||||
|
||||
def test_build_release_copies_locked_model_and_excludes_local_credentials(tmp_path):
|
||||
model = tmp_path / "best.pt"
|
||||
model.write_bytes(b"locked-model")
|
||||
output = tmp_path / "SilverPose-V1"
|
||||
|
||||
manifest = build_release_package(ROOT, model, sha256_file(model), output)
|
||||
|
||||
assert (output / "v1" / "models" / "best.pt").read_bytes() == b"locked-model"
|
||||
assert manifest["model_sha256"] == sha256_file(model)
|
||||
assert not list(output.rglob("config.local.json"))
|
||||
assert not list(output.rglob("events.jsonl"))
|
||||
|
||||
|
||||
def test_demo_runbook_covers_preflight_evidence_and_scope():
|
||||
text = (ROOT / "docs" / "demo-runbook.md").read_text(encoding="utf-8")
|
||||
|
||||
for heading in ("启动前检查", "现场演示步骤", "证据复查", "适用边界"):
|
||||
assert heading in text
|
||||
assert "rtsp://" not in text
|
||||
|
||||
|
||||
def test_release_command_verifies_a_built_package(tmp_path, capsys):
|
||||
model = tmp_path / "best.pt"
|
||||
model.write_bytes(b"locked-model")
|
||||
output = tmp_path / "SilverPose-V1"
|
||||
build_release_package(ROOT, model, sha256_file(model), output)
|
||||
|
||||
assert main(["verify", "--package", str(output)]) == 0
|
||||
assert "release package verified" in capsys.readouterr().out
|
||||
Reference in New Issue
Block a user