Moved some files around and made cleanup better

This commit is contained in:
2026-09-14 19:01:08 -07:00
parent 50b234104a
commit 97ed7f05c8
866 changed files with 404 additions and 1612 deletions

View File

@@ -52,10 +52,11 @@ class CardWorkspaceTests(unittest.TestCase):
with self.assertRaises(ValueError):workspace.resolve_revision('BP-999','v02')
with self.assertRaisesRegex(ValueError,'already exists'):workspace.scaffold('BP-999','Test card','Common','v01')
def test_new_acceptance_archives_previous_and_pins_linked_art(self):
def test_new_acceptance_compacts_previous_and_internalizes_linked_art(self):
alias=self.assemble()
accepted=workspace.approve('BP-999','v01','First fixture approval')
before=workspace.digest(accepted/'med/normal/card.png')
low_before=workspace.digest(accepted/'low/normal/card.png')
linked_before=workspace.digest(accepted/'high/boundless/card.png')
self.revision=workspace.scaffold('BP-999','Test card','Common','v02')
alias.unlink();self.assemble()
# This revision deliberately depends on the earlier accepted full-art export.
@@ -63,15 +64,33 @@ class CardWorkspaceTests(unittest.TestCase):
content=workspace.read(self.revision/'card.json');content['art']=str((accepted/'high/boundless/card.png').relative_to(self.repo));workspace.write(self.revision/'card.json',content);workspace.refresh(self.revision)
target=workspace.approve('BP-999','v02','Second fixture approval')
archive=self.repo/'in-progress/cards/BP-999-test-card/history/accepted-v01'
self.assertEqual(workspace.resolve_revision('BP-999','v01'),archive)
with self.assertRaises(ValueError):workspace.resolve_revision('BP-999','v01')
self.assertEqual(workspace.resolve_revision('BP-999','v02'),target)
self.assertEqual(workspace.digest(archive/'med/normal/card.png'),before)
self.assertEqual((target/'source/art-master.png').resolve(),archive/'high/boundless/card.png')
self.assertEqual(workspace.validate(archive)['stage'],'approved')
self.assertEqual(workspace.digest(archive/'low/normal/card.png'),low_before)
self.assertFalse((archive/'med').exists());self.assertFalse((archive/'high').exists())
self.assertTrue((archive/'full-manifest.json').is_file());self.assertTrue((archive/'record.json').is_file())
self.assertFalse((target/'source/art-master.png').is_symlink())
self.assertEqual(workspace.digest(target/'source/art-master.png'),linked_before)
self.assertEqual(workspace.read(target/'card.json')['art'],'artifacts/cards/BP-999-test-card/source/art-master.png')
self.assertEqual(workspace.validate(target)['stage'],'approved')
self.assertEqual(alias.resolve(),target/'med/normal/card.png')
self.assertEqual(workspace.update_index()[0]['selectedRevision'],'v02')
def test_approval_compacts_superseded_working_revisions(self):
old=self.revision
Image.new('RGB',(20,28),'red').save(old/'source/art-master.png')
(old/'source/generation-prompt.txt').write_text('Retained prompt')
workspace.refresh(old)
self.revision=workspace.scaffold('BP-999','Test card','Common','v02');self.assemble()
workspace.approve('BP-999','v02','Second fixture approval')
history=self.repo/'in-progress/cards/BP-999-test-card/history/revisions/v01'
self.assertFalse(old.exists());self.assertTrue((history/'review/art-reference.png').is_file())
with Image.open(history/'review/art-reference.png') as reference:self.assertEqual(reference.size,(5,7))
self.assertFalse((history/'source/art-master.png').exists())
self.assertEqual((history/'source/generation-prompt.txt').read_text(),'Retained prompt')
self.assertTrue((history/'full-manifest.json').is_file())
with self.assertRaisesRegex(ValueError,'already exists'):workspace.scaffold('BP-999','Test card','Common','v01')
def test_changed_or_invalid_exports_block_promotion(self):
self.assemble();Image.new('RGBA',(9,14),(40,60,80,255)).save(self.revision/'med/normal/card.png')
with self.assertRaises(ValueError):workspace.approve('BP-999','v01','Test fixture approval only')