Files
Athena-Deck/test_voxcpm_runtime.py
T

29 lines
1.9 KiB
Python

import json,tempfile,unittest
from pathlib import Path
from unittest.mock import Mock,patch
from voxcpm_runtime import VoxCPMRuntime,VERSION
class VoxCPMRuntimeTests(unittest.TestCase):
def test_requires_verified_marker_and_valid_owned_environment(self):
with tempfile.TemporaryDirectory() as d:
r=VoxCPMRuntime(d,None);self.assertFalse(r.status()['installed'])
base=Path(d)/('a'*32);(base/'python/bin').mkdir(parents=True);(base/'python/bin/python').touch();(Path(d)/'active.json').write_text(json.dumps(dict(id=base.name)))
(base/'ready').write_text('wrong');self.assertFalse(r.status()['installed'])
(base/'ready').write_text(VERSION);self.assertTrue(r.status()['installed']);self.assertTrue(r.status()['worker_available'])
def test_success_and_failure_do_not_touch_shared_runtime_or_load_weights(self):
for fail in (False,True):
with tempfile.TemporaryDirectory() as d:
shared=Mock();shared.paths.return_value=(Path('/does/not/exist'),Path('/does/not/exist'))
r=VoxCPMRuntime(d,shared);r.job=dict(id='b'*32,state='running',phase='test')
calls=[]
def run(args,env=None):
calls.append([str(a) for a in args])
if fail:raise RuntimeError('synthetic install failure')
r._command=run;r._run();self.assertEqual(r.job['state'],'failed' if fail else 'complete')
if fail:self.assertFalse((Path(d)/'active.json').exists());self.assertFalse((Path(d)/('b'*32)).exists())
else:
flat=' '.join(' '.join(x) for x in calls);self.assertIn('voxcpm=='+VERSION,flat);self.assertIn('pip check',flat);self.assertNotIn('snapshot_download',flat);self.assertNotIn('model.generate(',flat)
def test_cancel_does_not_activate_partial_environment(self):
with tempfile.TemporaryDirectory() as d:
r=VoxCPMRuntime(d,None);r.job=dict(id='c'*32,state='running',phase='test');r._command=Mock(side_effect=InterruptedError());r._run()
self.assertEqual(r.job['state'],'cancelled');self.assertFalse((Path(d)/'active.json').exists())