Files
dj/model-bridge/verify_gpu_release.py

25 lines
1.7 KiB
Python

import json,sqlite3,urllib.request
from pathlib import Path
root=Path(__file__).resolve().parent.parent
before=json.loads((root/'integration-work/before-switch-final.json').read_text())
after=json.loads((root/'integration-work/after-switch.json').read_text())
assert before==after,'Data changed across restart; inspect the audit'
with sqlite3.connect(root/'integration-work/backups/upgrade-20261106-172956/huobao-data/huobao.sqlite3') as old,sqlite3.connect(root/'huobao-data/huobao.sqlite3') as current:
old.row_factory=current.row_factory=sqlite3.Row
originals=[dict(r) for r in old.execute('SELECT * FROM ai_service_configs')]
now={r['id']:dict(r) for r in current.execute('SELECT * FROM ai_service_configs')}
assert all(now[r['id']]==r for r in originals)
assert len(now)==len(originals)+18
variants=[r for r in now.values() if json.loads(r['settings'] or '{}').get('gpu_variant_source')]
assert len(variants)==18
for sid in (4,6,7,8,9,10):
assert {json.loads(r['settings'])['gpu'] for r in variants if json.loads(r['settings']).get('gpu_variant_source')==sid}=={'gpu1','gpu2','gpu3'}
summary={'passed':True,'original_configs_unchanged':len(originals),'fixed_gpu_configs':len(variants),
'projects':after['tables']['dramas']['count'],'styles':after['tables']['style_presets']['count'],'media_files_preserved':len(after['media'])}
base=json.loads((root/'huobao-data/last-launch.json').read_text())['api']
with urllib.request.urlopen(base+'/ai-configs',timeout=10) as response:configs=json.load(response)['data']
assert len(configs)==28
summary['live_api_configs']=len(configs)
(root/'integration-work/gpu-release-verification.json').write_text(json.dumps(summary,indent=2))
print(json.dumps(summary))