Add image runtime installation and profile deletion controls

This commit is contained in:
Mikei386
2026-09-28 18:12:33 +02:00
parent c584bbcaa6
commit fd797a6c8d
14 changed files with 244 additions and 15 deletions
+11 -1
View File
@@ -47,12 +47,22 @@ class Tests(unittest.TestCase):
payload=dict(id=None,revision=0,name='image-test',kind='image',model_id='a'*64,parameters=dict(width=512,height=512,steps=10,seed=-1,guidance=1))
req=urllib.request.Request(self.url+'/api/v1/profiles/save',data=json.dumps(payload).encode(),headers={'Cookie':self.cookie,'X-Athena-Deck':'1','Content-Type':'application/json'})
with urllib.request.urlopen(req) as r:self.assertEqual(r.status,200)
self.assertEqual(self.request('profiles')['profiles'][0]['name'],'image-test')
row=self.request('profiles')['profiles'][0]
self.assertEqual(row['name'],'image-test')
delete=urllib.request.Request(self.url+'/api/v1/profiles/delete',data=json.dumps(dict(id=row['id'],revision=row['revision'])).encode(),headers={'Cookie':self.cookie,'X-Athena-Deck':'1','Content-Type':'application/json'})
self.server.image_tests.job=dict(state='running',profile_id=row['id'])
with self.assertRaises(urllib.error.HTTPError) as busy:urllib.request.urlopen(delete)
self.assertEqual(busy.exception.code,400);busy.exception.close()
self.server.image_tests.job=None
with urllib.request.urlopen(delete) as r:self.assertEqual(r.status,200)
self.assertEqual(self.request('profiles')['profiles'],[])
self.assertTrue((target/'model.gguf').exists())
with self.assertRaises(urllib.error.HTTPError) as error:
urllib.request.urlopen(urllib.request.Request(self.url+'/api/v1/profiles',headers={'Authorization':'Bearer '+self.api_token}))
self.assertEqual(error.exception.code,401);error.exception.close()
def test_image_test_routes_are_admin_only(self):
self.assertIn('installed',self.request('image-runtime'))
self.assertIn('runtime_installed',self.request('image-tests'))
with self.assertRaises(urllib.error.HTTPError) as error:
urllib.request.urlopen(urllib.request.Request(self.url+'/api/v1/image-tests',headers={'Authorization':'Bearer '+self.api_token}))