refactor: use factory functions for hotkey and inserter in main

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Vitali Graf
2026-04-08 10:38:56 +02:00
parent fc96e9a10c
commit 45ad54a79c
2 changed files with 18 additions and 18 deletions
+14 -14
View File
@@ -7,20 +7,20 @@ from whisper_local.__main__ import App
class TestApp:
@patch("whisper_local.__main__.Inserter")
@patch("whisper_local.__main__.Transcriber")
@patch("whisper_local.__main__.HotkeyListener")
def test_app_init(self, mock_hotkey_class, mock_transcriber_class, mock_inserter_class):
@patch("whisper_local.__main__.create_listener")
@patch("whisper_local.__main__.create_inserter")
def test_app_init(self, mock_inserter_factory, mock_listener_factory, mock_transcriber_class):
app = App()
assert app.recorder is not None
assert app.inserter is not None
mock_transcriber_class.assert_called_once()
mock_hotkey_class.assert_called_once()
mock_listener_factory.assert_called_once()
mock_inserter_factory.assert_called_once()
@patch("whisper_local.__main__.Inserter")
@patch("whisper_local.__main__.Transcriber")
@patch("whisper_local.__main__.HotkeyListener")
def test_on_press_starts_recording(self, mock_hotkey_class, mock_transcriber_class, mock_inserter_class):
@patch("whisper_local.__main__.create_listener")
@patch("whisper_local.__main__.create_inserter")
def test_on_press_starts_recording(self, mock_inserter_factory, mock_listener_factory, mock_transcriber_class):
app = App()
app.recorder = MagicMock()
@@ -29,10 +29,10 @@ class TestApp:
app.recorder.start.assert_called_once()
@patch("whisper_local.__main__.Inserter")
@patch("whisper_local.__main__.Transcriber")
@patch("whisper_local.__main__.HotkeyListener")
def test_on_release_stops_and_transcribes(self, mock_hotkey_class, mock_transcriber_class, mock_inserter_class):
@patch("whisper_local.__main__.create_listener")
@patch("whisper_local.__main__.create_inserter")
def test_on_release_stops_and_transcribes(self, mock_inserter_factory, mock_listener_factory, mock_transcriber_class):
mock_transcriber = MagicMock()
mock_transcriber.transcribe.return_value = "Hallo"
mock_transcriber_class.return_value = mock_transcriber
@@ -51,10 +51,10 @@ class TestApp:
mock_transcriber.transcribe.assert_called_once_with(audio)
app.inserter.insert.assert_awaited_once_with("Hallo")
@patch("whisper_local.__main__.Inserter")
@patch("whisper_local.__main__.Transcriber")
@patch("whisper_local.__main__.HotkeyListener")
def test_on_release_no_audio_skips(self, mock_hotkey_class, mock_transcriber_class, mock_inserter_class):
@patch("whisper_local.__main__.create_listener")
@patch("whisper_local.__main__.create_inserter")
def test_on_release_no_audio_skips(self, mock_inserter_factory, mock_listener_factory, mock_transcriber_class):
mock_transcriber = MagicMock()
mock_transcriber_class.return_value = mock_transcriber
+4 -4
View File
@@ -5,8 +5,8 @@ import logging
import sys
from whisper_local.config import Config, load_config
from whisper_local.hotkey import HotkeyListener
from whisper_local.inserter import Inserter
from whisper_local.hotkey import create_listener
from whisper_local.inserter import create_inserter
from whisper_local.recorder import Recorder
from whisper_local.transcriber import Transcriber
@@ -28,8 +28,8 @@ class App:
compute_type=config.compute_type,
language=config.language,
)
self.inserter = Inserter()
self.hotkey = HotkeyListener(key_name=config.hotkey)
self.inserter = create_inserter()
self.hotkey = create_listener(key_name=config.hotkey)
self.hotkey.on_press = self.on_press
self.hotkey.on_release = self.on_release