Test and implement mpris.Rate property

This commit is contained in:
Stein Magnus Jodal 2011-06-10 20:35:45 +02:00
parent 5d1da4eeaf
commit e1fc403435
2 changed files with 30 additions and 1 deletions

View File

@ -115,7 +115,7 @@ class MprisObject(dbus.service.Object):
return {
'PlaybackStatus': (self.get_PlaybackStatus, None),
'LoopStatus': (self.get_LoopStatus, self.set_LoopStatus),
'Rate': (1.0, None),
'Rate': (1.0, self.set_Rate),
# TODO Get/set backend.playback.random
'Shuffle': (False, None),
# TODO Get meta data
@ -347,3 +347,7 @@ class MprisObject(dbus.service.Object):
elif value == 'Playlist':
self.backend.playback.repeat = True
self.backend.playback.single = False
def set_Rate(self, value):
if value == 0:
self.Pause()

View File

@ -68,6 +68,31 @@ class PlayerInterfaceTest(unittest.TestCase):
self.assertEquals(self.backend.playback.repeat.get(), True)
self.assertEquals(self.backend.playback.single.get(), False)
def test_get_rate_is_greater_or_equal_than_minimum_rate(self):
rate = self.mpris.Get(mpris.PLAYER_IFACE, 'Rate')
minimum_rate = self.mpris.Get(mpris.PLAYER_IFACE, 'MinimumRate')
self.assert_(rate >= minimum_rate)
def test_get_rate_is_less_or_equal_than_maximum_rate(self):
rate = self.mpris.Get(mpris.PLAYER_IFACE, 'Rate')
maximum_rate = self.mpris.Get(mpris.PLAYER_IFACE, 'MaximumRate')
self.assert_(rate >= maximum_rate)
def test_set_rate_to_zero_pauses_playback(self):
self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')])
self.backend.playback.play()
self.assertEquals(self.backend.playback.state.get(), PLAYING)
self.mpris.Set(mpris.PLAYER_IFACE, 'Rate', 0)
self.assertEquals(self.backend.playback.state.get(), PAUSED)
def test_get_minimum_rate_is_one_or_less(self):
result = self.mpris.Get(mpris.PLAYER_IFACE, 'MinimumRate')
self.assert_(result <= 1.0)
def test_get_maximum_rate_is_one_or_more(self):
result = self.mpris.Get(mpris.PLAYER_IFACE, 'MaximumRate')
self.assert_(result >= 1.0)
def test_next_when_playing_should_skip_to_next_track_and_keep_playing(self):
self.backend.current_playlist.append([Track(uri='a'), Track(uri='b')])
self.backend.playback.play()