16 lines
1.1 KiB
Python
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))
|