Files
Athena-Deck/test_video_components.py
T

35 lines
2.4 KiB
Python

import tempfile
import unittest
from pathlib import Path
from unittest.mock import Mock,patch
from profiles import Profiles,LTX_REPO,LTX_FILE,LTX_COMPONENTS,video_recipe
from catalog import Catalog,file_role
from execution_setup import assess
class VideoComponentsTests(unittest.TestCase):
def test_recipe_assignment_and_worker_block(self):
model=dict(id='main',repo=LTX_REPO,file=LTX_FILE,kind='video',revision='a'*40)
entries=[dict(id=role,repo=LTX_REPO,file=info['files'][0],kind='video',revision='a'*40,size=10) for role,info in LTX_COMPONENTS.items()]
lookup={x['id']:x for x in [model]+entries}
c=Mock();c.entry.side_effect=lambda ident:lookup[ident] if ident in lookup else (_ for _ in ()).throw(ValueError('missing'))
c.status.return_value={'entries':entries};c.files.return_value=dict(repo=LTX_REPO,revision='a'*40,files=[dict(name=x['file'],size=10) for x in entries],gated=True,auth_configured=True,license='ltx')
with tempfile.TemporaryDirectory() as d:
p=Profiles(Path(d)/'profiles.json',c);p.rows=[dict(id='p',revision=1,name='LTX',kind='video',model_id='main',parameters={})]
result=p.components('main');self.assertEqual(len(result['requirements']),4);c.files.assert_called_with(LTX_REPO,'a'*40)
self.assertTrue(all(len(r['available'])==1 for r in result['requirements']))
p.assign(dict(id='p',revision=1,components={x['id']:x['id'] for x in entries}))
self.assertFalse(p.status()['profiles'][0]['runnable']);self.assertEqual(len(p.status()['profiles'][0]['blockers']),1)
entries[0]['revision']='b'*40
with self.assertRaises(ValueError):p._component(model,'text_encoder','text_encoder')
with self.assertRaises(ValueError):p.assign(dict(id='p',revision=2,components={'unknown':''}))
self.assertEqual(assess(model,{})['state'],'runtime_missing')
def test_no_guesses_and_auxiliary_files_not_models(self):
self.assertIsNone(video_recipe(dict(kind='video',repo='other/repo',file=LTX_FILE)))
self.assertIsNone(video_recipe(dict(kind='video',repo=LTX_REPO,file=LTX_FILE.replace('bf16','nvfp4'))))
for info in LTX_COMPONENTS.values():self.assertFalse(file_role(info['files'][0])['profile_eligible'])
def test_metadata_uses_pinned_revision(self):
with tempfile.TemporaryDirectory() as d,patch('catalog.metadata',return_value={'sha':'a'*40,'siblings':[]}) as get:
c=Catalog(d);c.files(LTX_REPO,'a'*40)
self.assertIn('/revision/'+'a'*40,get.call_args.args[0])
with self.assertRaises(ValueError):c.files(LTX_REPO,'main')