Group runtime settings and add profile component downloads and assignments
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user