docs: preserve verified save diagnostics package and provenance
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
from pathlib import Path
|
||||
import hashlib, json, shutil
|
||||
|
||||
root = Path(__file__).resolve().parent / 'package46'
|
||||
record = json.loads((root / 'extraction-check.json').read_text())
|
||||
bundle = Path(record['bundle'])
|
||||
sha = lambda p: hashlib.sha256(p.read_bytes()).hexdigest()
|
||||
assert sha(bundle / 'arcadia-studio.exe') == 'e9cce9355525ecdc59bfae12608b1e0272167acef5a86b25368ef547e08886ff'
|
||||
assert sha(bundle / 'libunwind.dll') == 'f45604a12e8bcd839fd86f667c1be1cc7c4f9da2b3c69ff381ac708f0e1ae7d4'
|
||||
native = root / 'qa/native46'
|
||||
native.mkdir()
|
||||
(native / 'captures').mkdir()
|
||||
work = root / 'working'
|
||||
work.mkdir()
|
||||
fixture = bundle / 'examples/release1'
|
||||
def inventory(p):
|
||||
return {f.relative_to(p).as_posix(): {'bytes': f.stat().st_size, 'sha256': sha(f)}
|
||||
for f in p.rglob('*') if f.is_file()}
|
||||
baseline = inventory(fixture)
|
||||
assert len(baseline) == 37
|
||||
for name in ['collision-a', 'external-b']:
|
||||
shutil.copytree(fixture, work / name)
|
||||
assert inventory(work / name) == baseline
|
||||
fresh = work / 'fresh-c'
|
||||
fresh.mkdir()
|
||||
for f in fixture.rglob('*'):
|
||||
if f.is_file() and f.suffix != '.arcadia':
|
||||
p = fresh / f.relative_to(fixture)
|
||||
p.parent.mkdir(parents=True, exist_ok=True)
|
||||
shutil.copyfile(f, p)
|
||||
assert len(inventory(fresh)) == 7 and not list(fresh.rglob('*.arcadia'))
|
||||
receipt = {'source': '0e83157e09d52e6152df91208e41693b62da2d46',
|
||||
'package_documentation_source': 'ef28f1784efe6717b0ca72c0eb3c97bc30ebfe47',
|
||||
'archive_sha256': record['archive_sha256'], 'bundle': str(bundle),
|
||||
'baseline': baseline, 'fresh_companions': inventory(fresh),
|
||||
'declared_rename': {'activity': '61f7bbfb-74a4-5540-9182-2583dfb27a49',
|
||||
'before': 'Assess pressure alarm', 'after': 'Assess pressure alarm Package46'},
|
||||
'external_dependency': 'oa/activities/activity_oa_restore_work.arcadia',
|
||||
'external_comment': '\n// Package46 observed external-edit probe\n'}
|
||||
with (native / 'baseline.json').open('x', encoding='utf-8') as f:
|
||||
json.dump(receipt, f, indent=2); f.write('\n')
|
||||
print(json.dumps({k: v for k, v in receipt.items() if k not in ['baseline', 'fresh_companions']}, indent=2))
|
||||
Reference in New Issue
Block a user