"""Local file/hash verification only: no media decode or runtime work on test."""
import hashlib
import json
from pathlib import Path

root=Path(__file__).resolve().parent.parent
dest=root/'Contextra_Fight_Space_Review_20261030'
manifest=json.loads((dest/'SHA256_manifest.json').read_text())
total=0
for relative,entry in manifest.items():
    path=dest/relative
    assert path.is_file() and path.stat().st_size==entry['bytes'],relative
    assert path.resolve().is_relative_to(dest.resolve()),relative
    h=hashlib.sha256()
    with path.open('rb') as f:
        for block in iter(lambda:f.read(1024*1024),b''):h.update(block)
    assert h.hexdigest()==entry['sha256'],relative
    total+=entry['bytes']
videos=sorted(dest.glob('*/B_Integrated_Space_Review.mp4'))
assert len(videos)==29
actual={str(p.relative_to(dest)) for p in dest.rglob('*') if p.is_file()}
assert actual==set(manifest)|{'SHA256_manifest.json'}
result=dict(status='PASS',files=len(manifest),bytes=total,videos=len(videos),
    manifest_sha256=hashlib.sha256((dest/'SHA256_manifest.json').read_bytes()).hexdigest(),
    local_media_decode=False,local_runtime_or_gpu=False)
(root/'reports/transfer_validation.json').write_text(json.dumps(result,indent=2))
print(json.dumps(result),flush=True)
