#!/usr/bin/env python3
"""Record newly proven list incompatibilities, not successful parity."""
import json
from pathlib import Path
import subprocess
import sys
import integrate_20261010 as tool
from integrate_20261011_batch72 import seal, RUNNER
from integrate_20261011_batches46_48 import item

BASE=tool.STORE+'parallel-store-onto-nutrition-read10-20261011/next-safe/'
def verify():
    root=tool.ROOT/BASE
    seal(root,'manifest-blocked4.json','4e5ad26e9c329aab12360d589e5918be94369c143f3fbcb3d3fbbb7f08b8ed63',
        '927bbd9218d0aa231488b1904a32eb74a34fe22212d87e7c0aa368bf2ce19d51',48)
    seal(root/'retry1','manifest.json','16c338c72b952410ca0866abf12801b81849edd066a01f47e20242e7ab0d694f',
        '13ebf493f0c3036fd20aced5615192c799df9b6f085c6dc18f5291852d748cfe',49)
    result=subprocess.run([sys.executable,'-B','-c',RUNNER,str(root/'retry1')],capture_output=True,text=True)
    assert result.returncode==0,result.stderr
    report=json.loads(result.stdout)
    assert report['assertions']==2479 and report['negative_cases']==6 and report['HTTP']==4
    assert report['DML']==report['DDL']==report['logs']==0
    assert all(not r['body_equal'] for r in report['compatibility_differences'].values())

def targets():
    return [item('store','POST',f'/{module}/nutrition/lists',BASE+'retry1/',
        mysql_state='tested-pass-original-owned-nonempty-single-product',
        dm_state='tested-fail-formal-200-but-physical-FLOAT82-and-plain-FLOAT-DTO-values-differ',
        success_case='tested-fail-new-valid-scalar-precision-case-original-partial-evidence-retained',
        parity='tested-fail-two-real-numeric-DTO-differences-not-natural-global-count-difference',
        risk='real-physical-numeric-read-difference-source-backed-native-and-complete-DTO',
        cleanup='readonly-no-DML-DDL-logs-original-data-preserved-own-worker-auth-cache-cleared')
        for module in ['p','m']]

if __name__=='__main__':
    audit=Path(__file__).with_name('integration-20261011-batch74.json')
    assert not audit.exists(),'Preserve original transition audit'
    tool.main(targets(),audit,verify)
