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.assertFalse(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())