From 4de7c242b7336a104f4eae7c1253171730f023b7 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Mon, 20 Jun 2011 15:03:00 +0300 Subject: [PATCH] Test and implement all direct checks of CanPlay==true --- mopidy/frontends/mpris.py | 3 +++ tests/frontends/mpris/player_interface_test.py | 7 +++++++ 2 files changed, 10 insertions(+) diff --git a/mopidy/frontends/mpris.py b/mopidy/frontends/mpris.py index e00075a6..83d5fbde 100644 --- a/mopidy/frontends/mpris.py +++ b/mopidy/frontends/mpris.py @@ -277,6 +277,9 @@ class MprisObject(dbus.service.Object): @dbus.service.method(dbus_interface=PLAYER_IFACE) def Play(self): logger.debug(u'%s.Play called', PLAYER_IFACE) + if not self.get_CanPlay(): + logger.debug(u'%s.Play not allowed', PLAYER_IFACE) + return state = self.backend.playback.state.get() if state == PlaybackController.PAUSED: self.backend.playback.resume().get() diff --git a/tests/frontends/mpris/player_interface_test.py b/tests/frontends/mpris/player_interface_test.py index f44b61ee..4fb5c91e 100644 --- a/tests/frontends/mpris/player_interface_test.py +++ b/tests/frontends/mpris/player_interface_test.py @@ -380,6 +380,13 @@ class PlayerInterfaceTest(unittest.TestCase): self.mpris.Stop() self.assertEquals(self.backend.playback.state.get(), STOPPED) + def test_play_is_ignored_if_can_play_is_false(self): + self.mpris.get_CanPlay = lambda *_: False + self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')]) + self.assertEquals(self.backend.playback.state.get(), STOPPED) + self.mpris.Play() + self.assertEquals(self.backend.playback.state.get(), STOPPED) + def test_play_when_stopped_starts_playback(self): self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')]) self.assertEquals(self.backend.playback.state.get(), STOPPED)