Update MPD/playback
This commit is contained in:
parent
1048795f2b
commit
cbe727d2bd
@ -1,3 +1,4 @@
|
||||
from mopidy.backends.base import PlaybackController
|
||||
from mopidy.frontends.mpd.protocol import handle_pattern
|
||||
from mopidy.frontends.mpd.exceptions import (MpdArgError, MpdNoExistError,
|
||||
MpdNotImplemented)
|
||||
@ -86,7 +87,7 @@ def next_(frontend):
|
||||
order as the first time.
|
||||
|
||||
"""
|
||||
return frontend.backend.playback.next()
|
||||
return frontend.backend.playback.next().get()
|
||||
|
||||
@handle_pattern(r'^pause$')
|
||||
@handle_pattern(r'^pause "(?P<state>[01])"$')
|
||||
@ -103,11 +104,11 @@ def pause(frontend, state=None):
|
||||
- Calls ``pause`` without any arguments to toogle pause.
|
||||
"""
|
||||
if state is None:
|
||||
if (frontend.backend.playback.state ==
|
||||
frontend.backend.playback.PLAYING):
|
||||
if (frontend.backend.playback.state.get() ==
|
||||
PlaybackController.PLAYING):
|
||||
frontend.backend.playback.pause()
|
||||
elif (frontend.backend.playback.state ==
|
||||
frontend.backend.playback.PAUSED):
|
||||
elif (frontend.backend.playback.state.get() ==
|
||||
PlaybackController.PAUSED):
|
||||
frontend.backend.playback.resume()
|
||||
elif int(state):
|
||||
frontend.backend.playback.pause()
|
||||
@ -120,7 +121,7 @@ def play(frontend):
|
||||
The original MPD server resumes from the paused state on ``play``
|
||||
without arguments.
|
||||
"""
|
||||
return frontend.backend.playback.play()
|
||||
return frontend.backend.playback.play().get()
|
||||
|
||||
@handle_pattern(r'^playid "(?P<cpid>\d+)"$')
|
||||
@handle_pattern(r'^playid "(?P<cpid>-1)"$')
|
||||
@ -145,8 +146,8 @@ def playid(frontend, cpid):
|
||||
if cpid == -1:
|
||||
return _play_minus_one(frontend)
|
||||
try:
|
||||
cp_track = frontend.backend.current_playlist.get(cpid=cpid)
|
||||
return frontend.backend.playback.play(cp_track)
|
||||
cp_track = frontend.backend.current_playlist.get(cpid=cpid).get()
|
||||
return frontend.backend.playback.play(cp_track).get()
|
||||
except LookupError:
|
||||
raise MpdNoExistError(u'No such song', command=u'playid')
|
||||
|
||||
@ -177,22 +178,22 @@ def playpos(frontend, songpos):
|
||||
if songpos == -1:
|
||||
return _play_minus_one(frontend)
|
||||
try:
|
||||
cp_track = frontend.backend.current_playlist.cp_tracks[songpos]
|
||||
return frontend.backend.playback.play(cp_track)
|
||||
cp_track = frontend.backend.current_playlist.cp_tracks.get()[songpos]
|
||||
return frontend.backend.playback.play(cp_track).get()
|
||||
except IndexError:
|
||||
raise MpdArgError(u'Bad song index', command=u'play')
|
||||
|
||||
def _play_minus_one(frontend):
|
||||
if (frontend.backend.playback.state == frontend.backend.playback.PLAYING):
|
||||
if (frontend.backend.playback.state.get() == PlaybackController.PLAYING):
|
||||
return # Nothing to do
|
||||
elif (frontend.backend.playback.state == frontend.backend.playback.PAUSED):
|
||||
return frontend.backend.playback.resume()
|
||||
elif frontend.backend.playback.current_cp_track is not None:
|
||||
cp_track = frontend.backend.playback.current_cp_track
|
||||
return frontend.backend.playback.play(cp_track)
|
||||
elif frontend.backend.current_playlist.cp_tracks:
|
||||
cp_track = frontend.backend.current_playlist.cp_tracks[0]
|
||||
return frontend.backend.playback.play(cp_track)
|
||||
elif (frontend.backend.playback.state.get() == PlaybackController.PAUSED):
|
||||
return frontend.backend.playback.resume().get()
|
||||
elif frontend.backend.playback.current_cp_track.get() is not None:
|
||||
cp_track = frontend.backend.playback.current_cp_track.get()
|
||||
return frontend.backend.playback.play(cp_track).get()
|
||||
elif frontend.backend.current_playlist.cp_tracks.get():
|
||||
cp_track = frontend.backend.current_playlist.cp_tracks.get()[0]
|
||||
return frontend.backend.playback.play(cp_track).get()
|
||||
else:
|
||||
return # Fail silently
|
||||
|
||||
@ -240,7 +241,7 @@ def previous(frontend):
|
||||
``previous`` should do a seek to time position 0.
|
||||
|
||||
"""
|
||||
return frontend.backend.playback.previous()
|
||||
return frontend.backend.playback.previous().get()
|
||||
|
||||
@handle_pattern(r'^random (?P<state>[01])$')
|
||||
@handle_pattern(r'^random "(?P<state>[01])"$')
|
||||
@ -351,7 +352,7 @@ def setvol(frontend, volume):
|
||||
volume = 0
|
||||
if volume > 100:
|
||||
volume = 100
|
||||
frontend.backend.mixer.volume = volume
|
||||
frontend.mixer.volume = volume
|
||||
|
||||
@handle_pattern(r'^single (?P<state>[01])$')
|
||||
@handle_pattern(r'^single "(?P<state>[01])"$')
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
import unittest
|
||||
|
||||
from mopidy.backends.base import PlaybackController
|
||||
from mopidy.backends.dummy import DummyBackend
|
||||
from mopidy.frontends.mpd import dispatcher
|
||||
from mopidy.mixers.dummy import DummyMixer
|
||||
@ -7,29 +8,38 @@ from mopidy.models import Track
|
||||
|
||||
from tests import SkipTest
|
||||
|
||||
PAUSED = PlaybackController.PAUSED
|
||||
PLAYING = PlaybackController.PLAYING
|
||||
STOPPED = PlaybackController.STOPPED
|
||||
|
||||
class PlaybackOptionsHandlerTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.b = DummyBackend(mixer_class=DummyMixer)
|
||||
self.h = dispatcher.MpdDispatcher(backend=self.b)
|
||||
self.b = DummyBackend.start().proxy()
|
||||
self.mixer = DummyMixer.start().proxy()
|
||||
self.h = dispatcher.MpdDispatcher()
|
||||
|
||||
def tearDown(self):
|
||||
self.b.stop().get()
|
||||
self.mixer.stop().get()
|
||||
|
||||
def test_consume_off(self):
|
||||
result = self.h.handle_request(u'consume "0"')
|
||||
self.assertFalse(self.b.playback.consume)
|
||||
self.assertFalse(self.b.playback.consume.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_consume_off_without_quotes(self):
|
||||
result = self.h.handle_request(u'consume 0')
|
||||
self.assertFalse(self.b.playback.consume)
|
||||
self.assertFalse(self.b.playback.consume.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_consume_on(self):
|
||||
result = self.h.handle_request(u'consume "1"')
|
||||
self.assertTrue(self.b.playback.consume)
|
||||
self.assertTrue(self.b.playback.consume.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_consume_on_without_quotes(self):
|
||||
result = self.h.handle_request(u'consume 1')
|
||||
self.assertTrue(self.b.playback.consume)
|
||||
self.assertTrue(self.b.playback.consume.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_crossfade(self):
|
||||
@ -38,97 +48,97 @@ class PlaybackOptionsHandlerTest(unittest.TestCase):
|
||||
|
||||
def test_random_off(self):
|
||||
result = self.h.handle_request(u'random "0"')
|
||||
self.assertFalse(self.b.playback.random)
|
||||
self.assertFalse(self.b.playback.random.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_random_off_without_quotes(self):
|
||||
result = self.h.handle_request(u'random 0')
|
||||
self.assertFalse(self.b.playback.random)
|
||||
self.assertFalse(self.b.playback.random.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_random_on(self):
|
||||
result = self.h.handle_request(u'random "1"')
|
||||
self.assertTrue(self.b.playback.random)
|
||||
self.assertTrue(self.b.playback.random.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_random_on_without_quotes(self):
|
||||
result = self.h.handle_request(u'random 1')
|
||||
self.assertTrue(self.b.playback.random)
|
||||
self.assertTrue(self.b.playback.random.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_repeat_off(self):
|
||||
result = self.h.handle_request(u'repeat "0"')
|
||||
self.assertFalse(self.b.playback.repeat)
|
||||
self.assertFalse(self.b.playback.repeat.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_repeat_off_without_quotes(self):
|
||||
result = self.h.handle_request(u'repeat 0')
|
||||
self.assertFalse(self.b.playback.repeat)
|
||||
self.assertFalse(self.b.playback.repeat.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_repeat_on(self):
|
||||
result = self.h.handle_request(u'repeat "1"')
|
||||
self.assertTrue(self.b.playback.repeat)
|
||||
self.assertTrue(self.b.playback.repeat.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_repeat_on_without_quotes(self):
|
||||
result = self.h.handle_request(u'repeat 1')
|
||||
self.assertTrue(self.b.playback.repeat)
|
||||
self.assertTrue(self.b.playback.repeat.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_setvol_below_min(self):
|
||||
result = self.h.handle_request(u'setvol "-10"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(0, self.b.mixer.volume)
|
||||
self.assertEqual(0, self.mixer.volume.get())
|
||||
|
||||
def test_setvol_min(self):
|
||||
result = self.h.handle_request(u'setvol "0"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(0, self.b.mixer.volume)
|
||||
self.assertEqual(0, self.mixer.volume.get())
|
||||
|
||||
def test_setvol_middle(self):
|
||||
result = self.h.handle_request(u'setvol "50"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(50, self.b.mixer.volume)
|
||||
self.assertEqual(50, self.mixer.volume.get())
|
||||
|
||||
def test_setvol_max(self):
|
||||
result = self.h.handle_request(u'setvol "100"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(100, self.b.mixer.volume)
|
||||
self.assertEqual(100, self.mixer.volume.get())
|
||||
|
||||
def test_setvol_above_max(self):
|
||||
result = self.h.handle_request(u'setvol "110"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(100, self.b.mixer.volume)
|
||||
self.assertEqual(100, self.mixer.volume.get())
|
||||
|
||||
def test_setvol_plus_is_ignored(self):
|
||||
result = self.h.handle_request(u'setvol "+10"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(10, self.b.mixer.volume)
|
||||
self.assertEqual(10, self.mixer.volume.get())
|
||||
|
||||
def test_setvol_without_quotes(self):
|
||||
result = self.h.handle_request(u'setvol 50')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(50, self.b.mixer.volume)
|
||||
self.assertEqual(50, self.mixer.volume.get())
|
||||
|
||||
def test_single_off(self):
|
||||
result = self.h.handle_request(u'single "0"')
|
||||
self.assertFalse(self.b.playback.single)
|
||||
self.assertFalse(self.b.playback.single.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_single_off_without_quotes(self):
|
||||
result = self.h.handle_request(u'single 0')
|
||||
self.assertFalse(self.b.playback.single)
|
||||
self.assertFalse(self.b.playback.single.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_single_on(self):
|
||||
result = self.h.handle_request(u'single "1"')
|
||||
self.assertTrue(self.b.playback.single)
|
||||
self.assertTrue(self.b.playback.single.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_single_on_without_quotes(self):
|
||||
result = self.h.handle_request(u'single 1')
|
||||
self.assertTrue(self.b.playback.single)
|
||||
self.assertTrue(self.b.playback.single.get())
|
||||
self.assert_(u'OK' in result)
|
||||
|
||||
def test_replay_gain_mode_off(self):
|
||||
@ -176,8 +186,13 @@ class PlaybackOptionsHandlerTest(unittest.TestCase):
|
||||
|
||||
class PlaybackControlHandlerTest(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.b = DummyBackend(mixer_class=DummyMixer)
|
||||
self.h = dispatcher.MpdDispatcher(backend=self.b)
|
||||
self.b = DummyBackend.start().proxy()
|
||||
self.mixer = DummyMixer.start().proxy()
|
||||
self.h = dispatcher.MpdDispatcher()
|
||||
|
||||
def tearDown(self):
|
||||
self.b.stop().get()
|
||||
self.mixer.stop().get()
|
||||
|
||||
def test_next(self):
|
||||
result = self.h.handle_request(u'next')
|
||||
@ -189,155 +204,155 @@ class PlaybackControlHandlerTest(unittest.TestCase):
|
||||
self.h.handle_request(u'pause "1"')
|
||||
result = self.h.handle_request(u'pause "0"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
|
||||
def test_pause_on(self):
|
||||
self.b.current_playlist.append([Track()])
|
||||
self.h.handle_request(u'play "0"')
|
||||
result = self.h.handle_request(u'pause "1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PAUSED, self.b.playback.state)
|
||||
self.assertEqual(PAUSED, self.b.playback.state.get())
|
||||
|
||||
def test_pause_toggle(self):
|
||||
self.b.current_playlist.append([Track()])
|
||||
result = self.h.handle_request(u'play "0"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
result = self.h.handle_request(u'pause')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PAUSED, self.b.playback.state)
|
||||
self.assertEqual(PAUSED, self.b.playback.state.get())
|
||||
result = self.h.handle_request(u'pause')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
|
||||
def test_play_without_pos(self):
|
||||
self.b.current_playlist.append([Track()])
|
||||
self.b.playback.state = self.b.playback.PAUSED
|
||||
self.b.playback.state = PAUSED
|
||||
result = self.h.handle_request(u'play')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
|
||||
def test_play_with_pos(self):
|
||||
self.b.current_playlist.append([Track()])
|
||||
result = self.h.handle_request(u'play "0"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
|
||||
def test_play_with_pos_without_quotes(self):
|
||||
self.b.current_playlist.append([Track()])
|
||||
result = self.h.handle_request(u'play 0')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
|
||||
def test_play_with_pos_out_of_bounds(self):
|
||||
self.b.current_playlist.append([])
|
||||
result = self.h.handle_request(u'play "0"')
|
||||
self.assertEqual(result[0], u'ACK [2@0] {play} Bad song index')
|
||||
self.assertEqual(self.b.playback.STOPPED, self.b.playback.state)
|
||||
self.assertEqual(STOPPED, self.b.playback.state.get())
|
||||
|
||||
def test_play_minus_one_plays_first_in_playlist_if_no_current_track(self):
|
||||
self.assertEqual(self.b.playback.current_track, None)
|
||||
self.assertEqual(self.b.playback.current_track.get(), None)
|
||||
self.b.current_playlist.append([Track(uri='a'), Track(uri='b')])
|
||||
result = self.h.handle_request(u'play "-1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assertEqual(self.b.playback.current_track.uri, 'a')
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
self.assertEqual(self.b.playback.current_track.get().uri, 'a')
|
||||
|
||||
def test_play_minus_one_plays_current_track_if_current_track_is_set(self):
|
||||
self.b.current_playlist.append([Track(uri='a'), Track(uri='b')])
|
||||
self.assertEqual(self.b.playback.current_track, None)
|
||||
self.assertEqual(self.b.playback.current_track.get(), None)
|
||||
self.b.playback.play()
|
||||
self.b.playback.next()
|
||||
self.b.playback.stop()
|
||||
self.assertNotEqual(self.b.playback.current_track, None)
|
||||
self.assertNotEqual(self.b.playback.current_track.get(), None)
|
||||
result = self.h.handle_request(u'play "-1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assertEqual(self.b.playback.current_track.uri, 'b')
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
self.assertEqual(self.b.playback.current_track.get().uri, 'b')
|
||||
|
||||
def test_play_minus_one_on_empty_playlist_does_not_ack(self):
|
||||
self.b.current_playlist.clear()
|
||||
result = self.h.handle_request(u'play "-1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.STOPPED, self.b.playback.state)
|
||||
self.assertEqual(self.b.playback.current_track, None)
|
||||
self.assertEqual(STOPPED, self.b.playback.state.get())
|
||||
self.assertEqual(self.b.playback.current_track.get(), None)
|
||||
|
||||
def test_play_minus_is_ignored_if_playing(self):
|
||||
self.b.current_playlist.append([Track(length=40000)])
|
||||
self.b.playback.seek(30000)
|
||||
self.assert_(self.b.playback.time_position >= 30000)
|
||||
self.assertEquals(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assert_(self.b.playback.time_position.get() >= 30000)
|
||||
self.assertEquals(PLAYING, self.b.playback.state.get())
|
||||
result = self.h.handle_request(u'play "-1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assert_(self.b.playback.time_position >= 30000)
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
self.assert_(self.b.playback.time_position.get() >= 30000)
|
||||
|
||||
def test_play_minus_one_resumes_if_paused(self):
|
||||
self.b.current_playlist.append([Track(length=40000)])
|
||||
self.b.playback.seek(30000)
|
||||
self.assert_(self.b.playback.time_position >= 30000)
|
||||
self.assertEquals(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assert_(self.b.playback.time_position.get() >= 30000)
|
||||
self.assertEquals(PLAYING, self.b.playback.state.get())
|
||||
self.b.playback.pause()
|
||||
self.assertEquals(self.b.playback.PAUSED, self.b.playback.state)
|
||||
self.assertEquals(PAUSED, self.b.playback.state.get())
|
||||
result = self.h.handle_request(u'play "-1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assert_(self.b.playback.time_position >= 30000)
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
self.assert_(self.b.playback.time_position.get() >= 30000)
|
||||
|
||||
def test_playid(self):
|
||||
self.b.current_playlist.append([Track()])
|
||||
result = self.h.handle_request(u'playid "0"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
|
||||
def test_playid_minus_one_plays_first_in_playlist_if_no_current_track(self):
|
||||
self.assertEqual(self.b.playback.current_track, None)
|
||||
self.assertEqual(self.b.playback.current_track.get(), None)
|
||||
self.b.current_playlist.append([Track(uri='a'), Track(uri='b')])
|
||||
result = self.h.handle_request(u'playid "-1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assertEqual(self.b.playback.current_track.uri, 'a')
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
self.assertEqual(self.b.playback.current_track.get().uri, 'a')
|
||||
|
||||
def test_playid_minus_one_plays_current_track_if_current_track_is_set(self):
|
||||
self.b.current_playlist.append([Track(uri='a'), Track(uri='b')])
|
||||
self.assertEqual(self.b.playback.current_track, None)
|
||||
self.assertEqual(self.b.playback.current_track.get(), None)
|
||||
self.b.playback.play()
|
||||
self.b.playback.next()
|
||||
self.b.playback.stop()
|
||||
self.assertNotEqual(self.b.playback.current_track, None)
|
||||
self.assertNotEqual(self.b.playback.current_track.get(), None)
|
||||
result = self.h.handle_request(u'playid "-1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assertEqual(self.b.playback.current_track.uri, 'b')
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
self.assertEqual(self.b.playback.current_track.get().uri, 'b')
|
||||
|
||||
def test_playid_minus_one_on_empty_playlist_does_not_ack(self):
|
||||
self.b.current_playlist.clear()
|
||||
result = self.h.handle_request(u'playid "-1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.STOPPED, self.b.playback.state)
|
||||
self.assertEqual(self.b.playback.current_track, None)
|
||||
self.assertEqual(STOPPED, self.b.playback.state.get())
|
||||
self.assertEqual(self.b.playback.current_track.get(), None)
|
||||
|
||||
def test_playid_minus_is_ignored_if_playing(self):
|
||||
self.b.current_playlist.append([Track(length=40000)])
|
||||
self.b.playback.seek(30000)
|
||||
self.assert_(self.b.playback.time_position >= 30000)
|
||||
self.assertEquals(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assert_(self.b.playback.time_position.get() >= 30000)
|
||||
self.assertEquals(PLAYING, self.b.playback.state.get())
|
||||
result = self.h.handle_request(u'playid "-1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assert_(self.b.playback.time_position >= 30000)
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
self.assert_(self.b.playback.time_position.get() >= 30000)
|
||||
|
||||
def test_playid_minus_one_resumes_if_paused(self):
|
||||
self.b.current_playlist.append([Track(length=40000)])
|
||||
self.b.playback.seek(30000)
|
||||
self.assert_(self.b.playback.time_position >= 30000)
|
||||
self.assertEquals(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assert_(self.b.playback.time_position.get() >= 30000)
|
||||
self.assertEquals(PLAYING, self.b.playback.state.get())
|
||||
self.b.playback.pause()
|
||||
self.assertEquals(self.b.playback.PAUSED, self.b.playback.state)
|
||||
self.assertEquals(PAUSED, self.b.playback.state.get())
|
||||
result = self.h.handle_request(u'playid "-1"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.PLAYING, self.b.playback.state)
|
||||
self.assert_(self.b.playback.time_position >= 30000)
|
||||
self.assertEqual(PLAYING, self.b.playback.state.get())
|
||||
self.assert_(self.b.playback.time_position.get() >= 30000)
|
||||
|
||||
def test_playid_which_does_not_exist(self):
|
||||
self.b.current_playlist.append([Track()])
|
||||
@ -361,20 +376,20 @@ class PlaybackControlHandlerTest(unittest.TestCase):
|
||||
[Track(uri='1', length=40000), seek_track])
|
||||
result = self.h.handle_request(u'seek "1" "30"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.current_track, seek_track)
|
||||
self.assertEqual(self.b.playback.current_track.get(), seek_track)
|
||||
|
||||
def test_seek_without_quotes(self):
|
||||
self.b.current_playlist.append([Track(length=40000)])
|
||||
self.h.handle_request(u'seek 0')
|
||||
result = self.h.handle_request(u'seek 0 30')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(self.b.playback.time_position >= 30000)
|
||||
self.assert_(self.b.playback.time_position.get() >= 30000)
|
||||
|
||||
def test_seekid(self):
|
||||
self.b.current_playlist.append([Track(length=40000)])
|
||||
result = self.h.handle_request(u'seekid "0" "30"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assert_(self.b.playback.time_position >= 30000)
|
||||
self.assert_(self.b.playback.time_position.get() >= 30000)
|
||||
|
||||
def test_seekid_with_cpid(self):
|
||||
seek_track = Track(uri='2', length=40000)
|
||||
@ -382,10 +397,10 @@ class PlaybackControlHandlerTest(unittest.TestCase):
|
||||
[Track(length=40000), seek_track])
|
||||
result = self.h.handle_request(u'seekid "1" "30"')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.current_cpid, 1)
|
||||
self.assertEqual(self.b.playback.current_track, seek_track)
|
||||
self.assertEqual(self.b.playback.current_cpid.get(), 1)
|
||||
self.assertEqual(self.b.playback.current_track.get(), seek_track)
|
||||
|
||||
def test_stop(self):
|
||||
result = self.h.handle_request(u'stop')
|
||||
self.assert_(u'OK' in result)
|
||||
self.assertEqual(self.b.playback.STOPPED, self.b.playback.state)
|
||||
self.assertEqual(STOPPED, self.b.playback.state.get())
|
||||
|
||||
Loading…
Reference in New Issue
Block a user