the-custodian/docs/changes/netkingdom-target-2026-10-16/browser-adapter-next/verify_candidate.py
codex 042ac52ac2
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 2s
Reject generated-only commits / generated-commit-guard (push) Successful in 11s
docs: preserve reviewed NetKingdom session artifacts
2026-11-01 22:48:04 +01:00

39 lines
1.7 KiB
Python

#!/usr/bin/env python3
"""Reconstruct isolated source candidate and exercise synthetic fixtures only."""
import argparse
import hashlib
import json
import os
from pathlib import Path
import shutil
import subprocess
import sys
import tempfile
p = argparse.ArgumentParser()
p.add_argument('--owner-root', type=Path, default=Path('/home/worsch/net-kingdom'))
p.add_argument('--warden-root', type=Path, default=Path('/home/worsch/ops-warden'))
args = p.parse_args()
packet = Path(__file__).resolve().parent
manifest = json.loads((packet / 'manifest.json').read_text())
with tempfile.TemporaryDirectory(prefix='nk-registration-review-') as directory:
candidate = Path(directory)
for relative, expected in manifest['fixture_dependencies'].items():
source = args.owner_root / relative
data = source.read_bytes()
if 'sha256:' + hashlib.sha256(data).hexdigest() != expected:
raise SystemExit('fixture dependency drift: ' + relative)
target = candidate / relative
target.parent.mkdir(parents=True, exist_ok=True)
target.write_bytes(data)
for relative, expected in manifest['postimages'].items():
data = (packet / 'postimages' / relative).read_bytes()
if 'sha256:' + hashlib.sha256(data).hexdigest() != expected:
raise SystemExit('candidate source drift: ' + relative)
target = candidate / relative
target.parent.mkdir(parents=True, exist_ok=True)
target.write_bytes(data)
result = subprocess.run([sys.executable, '-m', 'unittest', 'discover', '-s',
str(candidate / 'sso-mfa/k8s/keycape'), '-p', 'test_keycape*.py', '-v'],
env=dict(os.environ, PYTHONPATH=str(args.warden_root / 'src')))
raise SystemExit(result.returncode)