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:
+14
-14
@@ -7,20 +7,20 @@ from whisper_local.__main__ import App
|
|||||||
|
|
||||||
|
|
||||||
class TestApp:
|
class TestApp:
|
||||||
@patch("whisper_local.__main__.Inserter")
|
|
||||||
@patch("whisper_local.__main__.Transcriber")
|
@patch("whisper_local.__main__.Transcriber")
|
||||||
@patch("whisper_local.__main__.HotkeyListener")
|
@patch("whisper_local.__main__.create_listener")
|
||||||
def test_app_init(self, mock_hotkey_class, mock_transcriber_class, mock_inserter_class):
|
@patch("whisper_local.__main__.create_inserter")
|
||||||
|
def test_app_init(self, mock_inserter_factory, mock_listener_factory, mock_transcriber_class):
|
||||||
app = App()
|
app = App()
|
||||||
assert app.recorder is not None
|
assert app.recorder is not None
|
||||||
assert app.inserter is not None
|
|
||||||
mock_transcriber_class.assert_called_once()
|
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__.Transcriber")
|
||||||
@patch("whisper_local.__main__.HotkeyListener")
|
@patch("whisper_local.__main__.create_listener")
|
||||||
def test_on_press_starts_recording(self, mock_hotkey_class, mock_transcriber_class, mock_inserter_class):
|
@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 = App()
|
||||||
app.recorder = MagicMock()
|
app.recorder = MagicMock()
|
||||||
|
|
||||||
@@ -29,10 +29,10 @@ class TestApp:
|
|||||||
|
|
||||||
app.recorder.start.assert_called_once()
|
app.recorder.start.assert_called_once()
|
||||||
|
|
||||||
@patch("whisper_local.__main__.Inserter")
|
|
||||||
@patch("whisper_local.__main__.Transcriber")
|
@patch("whisper_local.__main__.Transcriber")
|
||||||
@patch("whisper_local.__main__.HotkeyListener")
|
@patch("whisper_local.__main__.create_listener")
|
||||||
def test_on_release_stops_and_transcribes(self, mock_hotkey_class, mock_transcriber_class, mock_inserter_class):
|
@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 = MagicMock()
|
||||||
mock_transcriber.transcribe.return_value = "Hallo"
|
mock_transcriber.transcribe.return_value = "Hallo"
|
||||||
mock_transcriber_class.return_value = mock_transcriber
|
mock_transcriber_class.return_value = mock_transcriber
|
||||||
@@ -51,10 +51,10 @@ class TestApp:
|
|||||||
mock_transcriber.transcribe.assert_called_once_with(audio)
|
mock_transcriber.transcribe.assert_called_once_with(audio)
|
||||||
app.inserter.insert.assert_awaited_once_with("Hallo")
|
app.inserter.insert.assert_awaited_once_with("Hallo")
|
||||||
|
|
||||||
@patch("whisper_local.__main__.Inserter")
|
|
||||||
@patch("whisper_local.__main__.Transcriber")
|
@patch("whisper_local.__main__.Transcriber")
|
||||||
@patch("whisper_local.__main__.HotkeyListener")
|
@patch("whisper_local.__main__.create_listener")
|
||||||
def test_on_release_no_audio_skips(self, mock_hotkey_class, mock_transcriber_class, mock_inserter_class):
|
@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 = MagicMock()
|
||||||
mock_transcriber_class.return_value = mock_transcriber
|
mock_transcriber_class.return_value = mock_transcriber
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,8 @@ import logging
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
from whisper_local.config import Config, load_config
|
from whisper_local.config import Config, load_config
|
||||||
from whisper_local.hotkey import HotkeyListener
|
from whisper_local.hotkey import create_listener
|
||||||
from whisper_local.inserter import Inserter
|
from whisper_local.inserter import create_inserter
|
||||||
from whisper_local.recorder import Recorder
|
from whisper_local.recorder import Recorder
|
||||||
from whisper_local.transcriber import Transcriber
|
from whisper_local.transcriber import Transcriber
|
||||||
|
|
||||||
@@ -28,8 +28,8 @@ class App:
|
|||||||
compute_type=config.compute_type,
|
compute_type=config.compute_type,
|
||||||
language=config.language,
|
language=config.language,
|
||||||
)
|
)
|
||||||
self.inserter = Inserter()
|
self.inserter = create_inserter()
|
||||||
self.hotkey = HotkeyListener(key_name=config.hotkey)
|
self.hotkey = create_listener(key_name=config.hotkey)
|
||||||
self.hotkey.on_press = self.on_press
|
self.hotkey.on_press = self.on_press
|
||||||
self.hotkey.on_release = self.on_release
|
self.hotkey.on_release = self.on_release
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user