test_honesty_ledger_integrity.py python
47 lines 1.6 KB
Raw
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1 docs: MuseHub-first before ISR #74 — staging solidify NEXT Human 3 days ago
1 """Data-integrity tests for honesty ledger append."""
2
3 from __future__ import annotations
4
5 import json
6
7 from tests.support import load_honesty_config, load_honesty_entry
8 from tools.honesty.ledger import append_entry, verify_ledger_file
9 from tools.honesty.ledger_io import read_ledger_entries
10 from tools.honesty.types import LedgerAppendOptions
11
12
13 def test_dual_genesis_entry_atomic(repo_root) -> None:
14 config = load_honesty_config(repo_root)
15 body = load_honesty_entry(repo_root, "verdict-pass.json")
16 result = append_entry(
17 config=config,
18 repo_root=repo_root,
19 options=LedgerAppendOptions(kind="verdict", body=body),
20 )
21 assert result.exit_code == 0
22 ledger = repo_root / ".overseer" / "honesty" / "VERDICT-LEDGER.jsonl"
23 entries = read_ledger_entries(ledger)
24 assert len(entries) == 2
25 assert entries[0]["kind"] == "genesis"
26 assert entries[1]["kind"] == "verdict"
27 assert entries[1]["prev_hash"] == entries[0]["entry_hash"]
28
29
30 def test_verify_idempotent(repo_root) -> None:
31 config = load_honesty_config(repo_root)
32 body = load_honesty_entry(repo_root, "verdict-pass.json")
33 append_entry(
34 config=config,
35 repo_root=repo_root,
36 options=LedgerAppendOptions(kind="verdict", body=body),
37 )
38 first = verify_ledger_file(config=config, repo_root=repo_root)
39 second = verify_ledger_file(config=config, repo_root=repo_root)
40 assert first.exit_code == 0
41 assert second.exit_code == 0
42
43
44 def test_verify_empty_ledger_zero(repo_root) -> None:
45 config = load_honesty_config(repo_root)
46 result = verify_ledger_file(config=config, repo_root=repo_root)
47 assert result.exit_code == 0
File History 2 commits
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1 docs: MuseHub-first before ISR #74 — staging solidify NEXT Human 3 days ago
sha256:4671b7f787ddbe63ced31c895b688c77ab495653b65a730b423329f26b3c1439 feat: K1-P1 complete — agent provenance, build-verification… Sonnet 4.6 patch 55 days ago