Add Groq transcription support

This commit is contained in:
Muzaffer Emre
2026-07-31 18:48:21 +03:00
parent da3dc3c908
commit dd73735617
7 changed files with 145 additions and 41 deletions
+37
View File
@@ -0,0 +1,37 @@
import json
import pathlib
import tempfile
import unittest
from unittest import mock
import api
import config
import settings_ui
class GroqCompatibilityTests(unittest.TestCase):
def test_old_config_gains_groq_defaults(self):
with tempfile.TemporaryDirectory() as directory:
path = pathlib.Path(directory) / "config.json"
path.write_text(json.dumps({"transcribe_provider": "openai"}), encoding="utf-8")
with mock.patch.object(config, "CONFIG_FILE", path):
conf = config.Config()
self.assertEqual(conf["groq_base_url"], api.GROQ_URL)
self.assertEqual(conf["groq_transcribe_model"], "whisper-large-v3-turbo")
def test_groq_target_and_timestamp_model(self):
with mock.patch.object(config.Config, "load"):
conf = config.Config()
conf["transcribe_provider"] = "groq"
conf["groq_api_key"] = "test-key"
target = conf.transcribe_target()
self.assertEqual(target.provider, "groq")
self.assertEqual(target.base_url, api.GROQ_URL)
self.assertEqual(api.timestamp_model(target.provider, target.model), target.model)
def test_groq_is_available_in_settings(self):
self.assertIn(("Groq", "groq"), settings_ui.TRANSCRIBE_PROVIDERS)
if __name__ == "__main__":
unittest.main()