import json
from pathlib import Path
cases=json.loads((Path(__file__).parent/'fixtures/cases.json').read_text(encoding='utf-8'))['cases']
required={'id','hostname','dns_answer','expected_endpoint','ttl_seconds','ttl_valid','authoritative_changed','tls_attempted','tls_version','tls_connected','expected_name','certificate_names','sni','path','expected_upstream','observed_upstream','response_status','hsts_header','response_transport','decisive_evidence','transfer'}
assert len(cases)==8
for c in cases:
    missing=required-set(c)
    assert not missing,(c['id'],missing)
    assert c['response_transport'] in {'HTTPS','HTTP','NONE'}
    assert c['ttl_seconds'] >= 0
print('PASS: 8 local synthetic DNS/TLS/proxy/HSTS fixtures are structurally complete')
