Group runtime settings and add profile component downloads and assignments

This commit is contained in:
Mikei386
2026-09-28 17:34:03 +02:00
parent 458047a1d3
commit 057b9df644
9 changed files with 130 additions and 8 deletions
+21
View File
@@ -52,3 +52,24 @@ class ManagementTests(unittest.TestCase):
files=[dict(name='vae/vae.safetensors',size=1),dict(name='model-lora.safetensors',size=2),dict(name='model-00001-of-00002.gguf',size=3*GIB),dict(name='model-00002-of-00002.gguf',size=2*GIB)]
result=overview(files,{'gpus':[]});self.assertEqual(result['min_bytes'],5*GIB)
self.assertEqual(overview(files[:-1],{'gpus':[]})['scope'],'unknown')
def test_component_recipe_assignment_and_preservation(self):
from profiles import QWEN_REPO,QWEN_COMPONENTS
from unittest.mock import patch
main=self.root/'models'/self.model_id/'entry.json';entry=json.loads(main.read_text());entry['repo']=QWEN_REPO;main.write_text(json.dumps(entry))
ids={};files=[]
for n,(role,recipe) in enumerate(QWEN_COMPONENTS.items(),1):
ident=str(n)*64;ids[role]=ident;target=self.root/'models'/ident;target.mkdir();(target/'model.safetensors').write_bytes(b'component')
f=recipe['files'][0];(target/'entry.json').write_text(json.dumps(dict(repo=QWEN_REPO,file=f,kind='image',size=9,revision='c'*40)))
files.append(dict(name=f,size=9,sha256=None))
saved=self.profiles.save(self.request())
with patch.object(self.catalog,'files',return_value=dict(files=files,revision='c'*40,gated=False,url='https://huggingface.co/'+QWEN_REPO,license='test')):
result=self.profiles.components(self.model_id)
self.assertTrue(result['supported']);self.assertEqual(len(result['requirements'][0]['available']),1)
assigned=self.profiles.assign(dict(id=saved['id'],revision=1,components=ids));self.assertEqual(assigned['revision'],2)
restarted=Profiles(self.root/'profiles.json',self.catalog);row=restarted.status()['profiles'][0]
self.assertEqual(row['components'],ids);self.assertEqual(len(row['blockers']),1);self.assertFalse(row['runnable'])
request=self.request();request.update(id=saved['id'],revision=2);self.assertEqual(restarted.save(request)['components'],ids)
with self.assertRaises(ValueError):restarted.assign(dict(id=saved['id'],revision=3,components={'vae':ids['text_encoder']}))
with self.assertRaises(ValueError):restarted.assign(dict(id=saved['id'],revision=2,components=ids))
request=self.request();request['model_id']=ids['vae']
with self.assertRaises(ValueError):restarted.save(request)