Allow deleting unused library files with profile guards
This commit is contained in:
@@ -70,6 +70,33 @@ class ManagementTests(unittest.TestCase):
|
||||
self.profiles.delete(dict(id=row['id'],revision=row['revision']))
|
||||
self.assertEqual(Profiles(self.root/'profiles.json',self.catalog).rows,[])
|
||||
self.assertTrue((self.root/'models'/self.model_id/'model.gguf').exists())
|
||||
def test_library_delete_requires_profile_removal(self):
|
||||
row=self.profiles.save(self.request())
|
||||
with self.assertRaisesRegex(ValueError,'image-test'):
|
||||
self.catalog.delete(self.model_id,self.profiles)
|
||||
self.assertTrue((self.root/'models'/self.model_id/'model.gguf').exists())
|
||||
self.profiles.delete(dict(id=row['id'],revision=row['revision']))
|
||||
with self.assertRaisesRegex(ValueError,'geladen'):
|
||||
self.catalog.delete(self.model_id,self.profiles,active_model_id=self.model_id)
|
||||
result=self.catalog.delete(self.model_id,self.profiles)
|
||||
self.assertEqual(result['deleted'],self.model_id)
|
||||
self.assertFalse((self.root/'models'/self.model_id).exists())
|
||||
self.assertEqual(self.catalog.status()['entries'],[])
|
||||
def test_library_delete_checks_component_references(self):
|
||||
row=self.profiles.save(self.request())
|
||||
component_id='b'*64
|
||||
target=self.root/'models'/component_id;target.mkdir()
|
||||
(target/'model.safetensors').write_bytes(b'component')
|
||||
(target/'entry.json').write_text(json.dumps(dict(repo='test/components',file='vae.safetensors',kind='image',size=9,revision='c'*40)))
|
||||
self.profiles.rows[0]['components']={'vae':component_id}
|
||||
with self.assertRaisesRegex(ValueError,'image-test'):
|
||||
self.catalog.delete(component_id,self.profiles)
|
||||
self.profiles.rows[0]['components']={}
|
||||
self.profiles.rows[0]['parameters']['vision_projector']=component_id
|
||||
with self.assertRaisesRegex(ValueError,'image-test'):
|
||||
self.catalog.delete(component_id,self.profiles)
|
||||
self.profiles.rows[0]['parameters']['vision_projector']=None
|
||||
self.assertEqual(self.catalog.delete(component_id,self.profiles)['deleted'],component_id)
|
||||
def test_clear_history_keeps_models_and_survives_restart(self):
|
||||
old=self.catalog.status()['downloads'][0];self.catalog.dismiss(old['id'])
|
||||
restart=Catalog(self.root/'models');self.assertEqual(restart.status()['downloads'],[]);self.assertEqual(len(restart.status()['entries']),1)
|
||||
|
||||
Reference in New Issue
Block a user