feat: add Win32TrayApp and NoOpTray with state management
This commit is contained in:
@@ -22,3 +22,38 @@ class TestCreateIcon:
|
||||
waiting = create_icon(AppState.WAITING)
|
||||
recording = create_icon(AppState.RECORDING)
|
||||
assert waiting.tobytes() != recording.tobytes()
|
||||
|
||||
|
||||
@pytest.mark.skipif(sys.platform != "win32", reason="Tray nur auf Windows")
|
||||
class TestWin32TrayApp:
|
||||
def test_set_state_updates_icon(self):
|
||||
from unittest.mock import MagicMock, patch
|
||||
from whisper_local.tray._tray import AppState, Win32TrayApp
|
||||
|
||||
app = Win32TrayApp(on_settings=MagicMock(), on_quit=MagicMock())
|
||||
|
||||
mock_icon = MagicMock()
|
||||
app._icon = mock_icon
|
||||
|
||||
app.set_state(AppState.RECORDING)
|
||||
|
||||
assert mock_icon.icon is not None
|
||||
|
||||
def test_set_state_before_start_is_safe(self):
|
||||
from unittest.mock import MagicMock
|
||||
from whisper_local.tray._tray import AppState, Win32TrayApp
|
||||
|
||||
app = Win32TrayApp(on_settings=MagicMock(), on_quit=MagicMock())
|
||||
app.set_state(AppState.WAITING) # kein Fehler, _icon ist None
|
||||
|
||||
|
||||
class TestNoOpTray:
|
||||
def test_start_does_nothing(self):
|
||||
from whisper_local.tray._tray import AppState, NoOpTray
|
||||
tray = NoOpTray()
|
||||
tray.start() # kein Fehler
|
||||
|
||||
def test_set_state_does_nothing(self):
|
||||
from whisper_local.tray._tray import AppState, NoOpTray
|
||||
tray = NoOpTray()
|
||||
tray.set_state(AppState.RECORDING) # kein Fehler
|
||||
|
||||
Reference in New Issue
Block a user