Files
ARCADIA-Studio/harness/experiments/compact-help-20261001/check-indexed-evidence.py
T

16 lines
1.1 KiB
Python

from pathlib import Path
import hashlib, json, subprocess
root = Path(subprocess.check_output(['git','rev-parse','--show-toplevel'], text=True).strip())
packet = root/'harness/experiments/compact-help-20261001/package'
inventory = json.loads((packet/'evidence-files.json').read_text(encoding='utf-8'))
prefix = packet.relative_to(root).as_posix()
assert {p.relative_to(packet).as_posix() for p in packet.rglob('*') if p.is_file()} == set(inventory)|{'evidence-files.json'}
for relative, expected in inventory.items():
data = (packet/relative).read_bytes()
indexed = subprocess.check_output(['git','show',':'+prefix+'/'+relative], cwd=root)
actual = {'bytes':len(data),'sha256':hashlib.sha256(data).hexdigest()}
assert actual == expected, relative
assert indexed == data, 'Index changes captured bytes: '+relative
assert subprocess.check_output(['git','show',':'+prefix+'/evidence-files.json'],cwd=root) == (packet/'evidence-files.json').read_bytes()
print(json.dumps({'status':'PASS','captured_files':len(inventory),'indexed_inventory_identical':True,'policy':'All captured package bytes preserved by scoped -text attributes'},indent=2))