184df1594e
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
41 lines
1.2 KiB
Python
41 lines
1.2 KiB
Python
"""Tests für whisper_local.media Factory-Dispatch."""
|
|
|
|
import sys
|
|
from unittest.mock import patch
|
|
|
|
import pytest
|
|
|
|
from whisper_local.media import MediaController, create_media_controller
|
|
from whisper_local.media._noop import NoopController
|
|
|
|
|
|
def test_factory_returns_noop_when_disabled():
|
|
controller = create_media_controller(enabled=False)
|
|
assert isinstance(controller, NoopController)
|
|
|
|
|
|
def test_factory_returns_noop_on_non_linux():
|
|
with patch.object(sys, "platform", "win32"):
|
|
controller = create_media_controller(enabled=True)
|
|
assert isinstance(controller, NoopController)
|
|
|
|
|
|
@pytest.mark.skipif(sys.platform != "linux", reason="MPRIS is Linux-only")
|
|
def test_factory_returns_mpris_on_linux_when_enabled():
|
|
from whisper_local.media._mpris import MprisController
|
|
|
|
controller = create_media_controller(enabled=True)
|
|
assert isinstance(controller, MprisController)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_noop_controller_pause_is_noop():
|
|
controller = NoopController()
|
|
await controller.pause() # Darf nicht werfen
|
|
await controller.resume() # Darf nicht werfen
|
|
|
|
|
|
def test_noop_controller_satisfies_protocol():
|
|
controller = NoopController()
|
|
assert isinstance(controller, MediaController)
|