feat: add create_tray() factory with platform dispatch

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-10 21:17:05 +02:00
parent cba0340c76
commit ad60da4a38
2 changed files with 46 additions and 1 deletions
+26
View File
@@ -242,3 +242,29 @@ class TestSettingsDialog:
if captured_save_fn:
captured_save_fn[0]()
assert len(saved_configs) == 1
class TestCreateTray:
@pytest.mark.skipif(sys.platform != "win32", reason="Win32TrayApp nur auf Windows")
def test_returns_win32_tray_on_windows(self):
from unittest.mock import MagicMock
from whisper_local.tray import create_tray
from whisper_local.tray._tray import Win32TrayApp
tray = create_tray(on_settings=MagicMock(), on_quit=MagicMock())
assert isinstance(tray, Win32TrayApp)
@pytest.mark.skipif(sys.platform == "win32", reason="NoOpTray nur auf nicht-Windows")
def test_returns_noop_tray_on_non_windows(self):
from unittest.mock import MagicMock
from whisper_local.tray import create_tray
from whisper_local.tray._tray import NoOpTray
tray = create_tray(on_settings=MagicMock(), on_quit=MagicMock())
assert isinstance(tray, NoOpTray)
def test_appstate_exported_from_package(self):
from whisper_local.tray import AppState
assert AppState.WAITING is not None
assert AppState.RECORDING is not None
assert AppState.TRANSCRIBING is not None