feat: create_tray() dispatcht auf Linux zu PystrayApp

This commit is contained in:
2026-04-11 21:30:19 +02:00
parent d780960381
commit 149289510f
2 changed files with 14 additions and 3 deletions
+13 -2
View File
@@ -254,8 +254,19 @@ class TestCreateTray:
tray = create_tray(on_settings=MagicMock(), on_quit=MagicMock()) tray = create_tray(on_settings=MagicMock(), on_quit=MagicMock())
assert isinstance(tray, PystrayApp) assert isinstance(tray, PystrayApp)
@pytest.mark.skipif(sys.platform == "win32", reason="NoOpTray nur auf nicht-Windows") @pytest.mark.skipif(sys.platform != "linux", reason="Linux-only")
def test_returns_noop_tray_on_non_windows(self): def test_returns_pystray_on_linux(self):
from whisper_local.tray import create_tray
from whisper_local.tray._tray import PystrayApp
tray = create_tray(on_settings=lambda: None, on_quit=lambda: None)
assert isinstance(tray, PystrayApp)
@pytest.mark.skipif(
sys.platform in ("win32", "linux"),
reason="NoOpTray nur auf Plattformen ohne Tray-Unterstützung",
)
def test_returns_noop_tray_on_unsupported_platform(self):
from unittest.mock import MagicMock from unittest.mock import MagicMock
from whisper_local.tray import create_tray from whisper_local.tray import create_tray
from whisper_local.tray._tray import NoOpTray from whisper_local.tray._tray import NoOpTray
+1 -1
View File
@@ -11,7 +11,7 @@ def create_tray(
on_quit: Callable[[], None], on_quit: Callable[[], None],
) -> "PystrayApp | NoOpTray": ) -> "PystrayApp | NoOpTray":
"""Gibt den plattformspezifischen Tray zurück.""" """Gibt den plattformspezifischen Tray zurück."""
if sys.platform == "win32": if sys.platform in ("win32", "linux"):
from whisper_local.tray._tray import PystrayApp from whisper_local.tray._tray import PystrayApp
return PystrayApp(on_settings=on_settings, on_quit=on_quit) return PystrayApp(on_settings=on_settings, on_quit=on_quit)
return NoOpTray() return NoOpTray()