Record three user-approved voices and trace reused generation environments

This commit is contained in:
NINI
2026-10-05 01:56:50 +09:00
parent 906b467510
commit fb71c444f6
5 changed files with 265 additions and 16 deletions
+18
View File
@@ -3,6 +3,7 @@ import importlib.util
from pathlib import Path
import tempfile
import unittest
from unittest import mock
import numpy as np
import soundfile as sf
@@ -134,6 +135,23 @@ class VoiceHistoryTests(unittest.TestCase):
self.assertEqual(original, (self.root / first['clips'][0]['file']).read_bytes())
self.assertEqual(['count_01', 'guide_collect', 'count_01'], self.calls)
def test_reuse_environment_records_packages_device_and_original_run_without_model_load(self):
first = self.run_generation()
entries = voice.reusable_entries(self.root, self.catalog, self.profile)
with mock.patch.object(voice.importlib.metadata, 'version', return_value='test-version'), \
mock.patch.object(voice.subprocess, 'run', return_value=mock.Mock(stdout='Test GPU\n')):
environment = voice.reuse_environment(self.profile, entries, self.root)
second = voice.generate(self.catalog, self.profile, self.root, environment=environment)
self.assertEqual(['reused', 'reused'], [c['result'] for c in second['clips']])
self.assertEqual(['count_01', 'guide_collect'], self.calls)
self.assertEqual('not_needed', second['environment']['modelLoad'])
self.assertEqual('Test GPU', second['environment']['device'])
self.assertEqual('test-version', second['environment']['packages']['qwen-tts'])
source = second['environment']['sourceGenerations'][0]
self.assertEqual(first['runId'], source['runId'])
self.assertEqual(voice.file_hash(self.root / source['manifest']), source['manifestSha256'])
self.assertEqual({'test': True}, source['environment'])
if __name__ == '__main__':
unittest.main()