feat(media): MprisController.resume() stellt nur eigene Pausen wieder her

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-15 18:57:40 +02:00
parent c98a935dbc
commit f23ee1249d
2 changed files with 48 additions and 1 deletions
+36
View File
@@ -61,3 +61,39 @@ async def test_pause_pauses_only_playing_players(monkeypatch):
playing.call_pause.assert_awaited_once()
paused.call_pause.assert_not_awaited()
assert controller._paused == ["org.mpris.MediaPlayer2.spotify"]
@pytest.mark.asyncio
async def test_resume_plays_only_previously_paused(monkeypatch):
from whisper_local.media._mpris import MprisController
spotify = _make_player("Paused")
vlc = _make_player("Paused")
async def fake_get_player(name: str):
return {"org.mpris.MediaPlayer2.spotify": spotify,
"org.mpris.MediaPlayer2.vlc": vlc}[name]
controller = MprisController()
controller._paused = ["org.mpris.MediaPlayer2.spotify"]
monkeypatch.setattr(controller, "_get_player_interface", fake_get_player)
await controller.resume()
spotify.call_play.assert_awaited_once()
vlc.call_play.assert_not_awaited()
assert controller._paused == []
@pytest.mark.asyncio
async def test_resume_with_empty_paused_list_is_noop(monkeypatch):
from whisper_local.media._mpris import MprisController
controller = MprisController()
controller._paused = []
get_player = AsyncMock()
monkeypatch.setattr(controller, "_get_player_interface", get_player)
await controller.resume()
get_player.assert_not_awaited()