feat: add system theme detection for sv-ttk

This commit is contained in:
2026-04-10 21:11:18 +02:00
parent 9a1b96d178
commit 2630d4c7a5
2 changed files with 60 additions and 0 deletions
+48
View File
@@ -57,3 +57,51 @@ class TestNoOpTray:
from whisper_local.tray._tray import AppState, NoOpTray
tray = NoOpTray()
tray.set_state(AppState.RECORDING) # kein Fehler
@pytest.mark.skipif(sys.platform != "win32", reason="Theme nur auf Windows")
class TestApplySystemTheme:
def test_applies_light_theme(self):
import tkinter as tk
from unittest.mock import patch, MagicMock
from whisper_local.tray._theme import apply_system_theme
root = tk.Tk()
root.withdraw()
try:
with patch("darkdetect.theme", return_value="Light"), \
patch("sv_ttk.set_theme") as mock_set:
apply_system_theme(root)
mock_set.assert_called_once_with("light")
finally:
root.destroy()
def test_applies_dark_theme(self):
import tkinter as tk
from unittest.mock import patch
from whisper_local.tray._theme import apply_system_theme
root = tk.Tk()
root.withdraw()
try:
with patch("darkdetect.theme", return_value="Dark"), \
patch("sv_ttk.set_theme") as mock_set:
apply_system_theme(root)
mock_set.assert_called_once_with("dark")
finally:
root.destroy()
def test_falls_back_to_light_when_none(self):
import tkinter as tk
from unittest.mock import patch
from whisper_local.tray._theme import apply_system_theme
root = tk.Tk()
root.withdraw()
try:
with patch("darkdetect.theme", return_value=None), \
patch("sv_ttk.set_theme") as mock_set:
apply_system_theme(root)
mock_set.assert_called_once_with("light")
finally:
root.destroy()