fed8b2eed7
Build and push multi-arch DocsGPT Docker image / build (linux/amd64, ubuntu-latest, amd64) (push) Has been cancelled
Backend release / release (push) Has been cancelled
Bandit Security Scan / bandit_scan (push) Has been cancelled
Build and push multi-arch DocsGPT Docker image / build (linux/arm64, ubuntu-24.04-arm, arm64) (push) Has been cancelled
Build and push multi-arch DocsGPT Docker image / manifest (push) Has been cancelled
Build and push DocsGPT FE Docker image for development / build (linux/amd64, ubuntu-latest, amd64) (push) Has been cancelled
Build and push DocsGPT FE Docker image for development / build (linux/arm64, ubuntu-24.04-arm, arm64) (push) Has been cancelled
Build and push DocsGPT FE Docker image for development / manifest (push) Has been cancelled
Python linting / ruff (push) Has been cancelled
Run python tests with pytest / Run tests and count coverage (3.12) (push) Has been cancelled
React Widget Build / build (push) Has been cancelled
62 lines
1.9 KiB
Python
62 lines
1.9 KiB
Python
import base64
|
|
import sys
|
|
from types import ModuleType, SimpleNamespace
|
|
|
|
from application.tts.elevenlabs import ElevenlabsTTS
|
|
|
|
|
|
def test_elevenlabs_text_to_speech_monkeypatched_client(monkeypatch):
|
|
monkeypatch.setattr(
|
|
"application.tts.elevenlabs.settings",
|
|
SimpleNamespace(ELEVENLABS_API_KEY="api-key"),
|
|
)
|
|
|
|
created = {}
|
|
|
|
class DummyClient:
|
|
def __init__(self, api_key):
|
|
created["api_key"] = api_key
|
|
self.convert_calls = []
|
|
|
|
class TextToSpeech:
|
|
def __init__(self, outer):
|
|
self._outer = outer
|
|
|
|
def convert(self, *, voice_id, model_id, text, output_format):
|
|
self._outer.convert_calls.append(
|
|
{
|
|
"voice_id": voice_id,
|
|
"model_id": model_id,
|
|
"text": text,
|
|
"output_format": output_format,
|
|
}
|
|
)
|
|
yield b"chunk-one"
|
|
yield b"chunk-two"
|
|
|
|
self.text_to_speech = TextToSpeech(self)
|
|
|
|
client_module = ModuleType("elevenlabs.client")
|
|
client_module.ElevenLabs = DummyClient
|
|
package_module = ModuleType("elevenlabs")
|
|
package_module.client = client_module
|
|
|
|
monkeypatch.setitem(sys.modules, "elevenlabs", package_module)
|
|
monkeypatch.setitem(sys.modules, "elevenlabs.client", client_module)
|
|
|
|
tts = ElevenlabsTTS()
|
|
audio_base64, lang = tts.text_to_speech("Speak")
|
|
|
|
assert created["api_key"] == "api-key"
|
|
assert tts.client.convert_calls == [
|
|
{
|
|
"voice_id": "nPczCjzI2devNBz1zQrb",
|
|
"model_id": "eleven_multilingual_v2",
|
|
"text": "Speak",
|
|
"output_format": "mp3_44100_128",
|
|
}
|
|
]
|
|
assert lang == "en"
|
|
assert base64.b64decode(audio_base64.encode()) == b"chunk-onechunk-two"
|
|
|