"""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)