eb74e4787f
Implements Task 5 of the TDD plan: creates the tray package with AppState enum (WAITING, RECORDING, TRANSCRIBING) and a create_icon() function that generates colorized microphone icons via Pillow. - whisper_local/tray/__init__.py: empty package marker - whisper_local/tray/_tray.py: AppState enum - whisper_local/tray/_icon.py: icon generation with state-specific colors - tests/test_tray.py: comprehensive test coverage for icon creation Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
25 lines
838 B
Python
25 lines
838 B
Python
import sys
|
|
import pytest
|
|
|
|
|
|
@pytest.mark.skipif(sys.platform != "win32", reason="Tray nur auf Windows")
|
|
class TestCreateIcon:
|
|
def test_returns_image_for_each_state(self):
|
|
from PIL import Image
|
|
from whisper_local.tray._tray import AppState
|
|
from whisper_local.tray._icon import create_icon
|
|
|
|
for state in AppState:
|
|
img = create_icon(state)
|
|
assert isinstance(img, Image.Image)
|
|
assert img.size == (64, 64)
|
|
assert img.mode == "RGBA"
|
|
|
|
def test_different_states_have_different_colors(self):
|
|
from whisper_local.tray._tray import AppState
|
|
from whisper_local.tray._icon import create_icon
|
|
|
|
waiting = create_icon(AppState.WAITING)
|
|
recording = create_icon(AppState.RECORDING)
|
|
assert waiting.tobytes() != recording.tobytes()
|