fix(indeehub): compare logical PostgreSQL restore schema

This commit is contained in:
archipelago
2026-10-08 01:51:21 -04:00
parent bca8bad822
commit c58d1180e7
3 changed files with 65 additions and 2 deletions
@@ -562,4 +562,17 @@ console.log('process identity cases passed');'''
if change=='wrong-body':bad['members'][0]['pinned_original_body']='changed'
if change=='cycle':bad['members'][0]['original']['image']=image
with self.assertRaises(RuntimeError):module.verify_relay_image_lineage(image,digest,[bad],installed)
def test_column_commitments_retain_logical_order_and_every_semantic_field(self):
import copy
columns=[['first','integer',True,'','',''],['last','text',False,'','','']]
before={'operation_id':self.operation,'tables':{'typeorm_migrations':{'schema':{},'rows':0,'rows_sha256':'a'},'items':{'schema':{'columns':columns},'rows':0,'rows_sha256':'b'}},'migrations':[]}
module.verify_database_compatibility(before,copy.deepcopy(before))
for replacement in (list(reversed(columns)),columns[:-1],[['first','bigint',True,'','',''],columns[1]]):
after=copy.deepcopy(before);after['tables']['items']['schema']['columns']=replacement
with self.assertRaisesRegex(RuntimeError,'changed original table schema'):module.verify_database_compatibility(before,after)
def test_failure_diagnostics_are_private_bounded_and_do_not_change_journal(self):
c=self.controller;c.record={'operation_id':self.operation,'phase':'Prepared'};c.save();before=c.path.read_bytes()
c.save_failure('acquire',RuntimeError('diagnostic'*1000));path=c.root/'last-failure.private.json';record=json.loads(path.read_text())
self.assertEqual(record['operation_id'],self.operation);self.assertEqual(record['action'],'acquire');self.assertEqual(record['error_type'],'RuntimeError');self.assertEqual(len(record['message']),4096)
self.assertEqual(path.stat().st_mode&0o777,0o600);self.assertEqual(c.path.read_bytes(),before)
if __name__=='__main__':unittest.main()