Add isolated Qwen3 ASR setup test UI and transcription API

This commit is contained in:
Mikei386
2026-09-29 08:54:06 +02:00
parent 7bd9096e67
commit 27012165eb
20 changed files with 294 additions and 24 deletions
+10
View File
@@ -55,6 +55,16 @@ class EndpointTests(unittest.TestCase):
with self.assertRaises(ValueError):self.enable('audio')
self.assertEqual(self.request('/v1/audio/speech',{})[0],501)
self.record['api_token_hash']=hashlib.sha256(b'B'*32).hexdigest();self.assertEqual(self.request()[0],401);self.assertEqual(self.request(token='B'*32)[0],200)
def test_stt_endpoint_multipart_and_publication(self):
from test_stt import audio
self.rows.append(dict(id='stt',name='stt',kind='stt',runnable=True,blockers=[],parameters={}))
self.ep.stt=Mock();self.ep.stt.start.return_value={'id':'s'};self.ep.stt.status.return_value={'job':dict(id='s',state='complete',text='Testaufnahme')}
body=b'--x\r\nContent-Disposition: form-data; name="file"; filename="audio.wav"\r\n\r\n'+audio()+b'\r\n--x\r\nContent-Disposition: form-data; name="model"\r\n\r\nstt\r\n--x--\r\n'
def request():
c=http.client.HTTPConnection('127.0.0.1',self.port,timeout=5);c.request('POST','/v1/audio/transcriptions',body,{'Content-Type':'multipart/form-data; boundary=x','Authorization':'Bearer '+'A'*32});r=c.getresponse();result=r.status,json.loads(r.read());c.close();return result
self.assertEqual(request()[0],404)
self.enable('stt');self.assertEqual(request(),(200,{'text':'Testaufnahme'}))
self.assertEqual(self.ep.stt.start.call_args.args[0],'stt')
def test_tts_endpoint_returns_wav_and_requires_publication(self):
self.rows[-1].update(runnable=True,blockers=[])
self.ep.tts=Mock();self.ep.tts.start.return_value={'id':'a'*32};self.ep.tts.status.return_value={'job':{'id':'a'*32,'state':'complete'}};self.ep.tts.audio.return_value=b'RIFF-test-WAVE'