Add test_end_of_song_starts_next_track
This commit is contained in:
parent
7dbce96bce
commit
613e3b86ba
@ -1,6 +1,8 @@
|
||||
import logging
|
||||
|
||||
import gst
|
||||
import gobject
|
||||
import thread
|
||||
|
||||
from mopidy.models import Track, Playlist
|
||||
from mopidy.backends import (BaseBackend,
|
||||
@ -9,6 +11,14 @@ from mopidy.backends import (BaseBackend,
|
||||
|
||||
logger = logging.getLogger(u'backends.gstreamer')
|
||||
|
||||
def loop():
|
||||
gobject.threads_init()
|
||||
|
||||
while True:
|
||||
gobject.MainLoop().get_context().iteration(True)
|
||||
|
||||
thread.start_new_thread(loop, tuple())
|
||||
|
||||
class GStreamerBackend(BaseBackend):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(GStreamerBackend, self).__init__(*args, **kwargs)
|
||||
@ -36,6 +46,9 @@ class GStreamerPlaybackController(BasePlaybackController):
|
||||
sink = gst.element_factory_make("fakesink", "fakesink")
|
||||
|
||||
self.bin.set_property("video-sink", sink)
|
||||
self.bus.add_signal_watch()
|
||||
self.bus.connect('message', self._message)
|
||||
|
||||
self.stop()
|
||||
|
||||
def _set_state(self, state):
|
||||
@ -50,6 +63,10 @@ class GStreamerPlaybackController(BasePlaybackController):
|
||||
elif new == gst.STATE_PAUSED:
|
||||
self.state = self.PAUSED
|
||||
|
||||
def _message(self, bus, message):
|
||||
if message.type == gst.MESSAGE_EOS:
|
||||
self.next()
|
||||
|
||||
def play(self, track=None, position=None):
|
||||
playlist = self.backend.current_playlist.playlist
|
||||
|
||||
@ -107,4 +124,5 @@ class GStreamerPlaybackController(BasePlaybackController):
|
||||
|
||||
def destroy(self):
|
||||
self.bin.set_state(gst.STATE_NULL)
|
||||
self.bus.remove_signal_watch()
|
||||
del self.bin
|
||||
|
||||
@ -662,8 +662,13 @@ class BasePlaybackControllerTest(object):
|
||||
def test_previous_track_with_shuffle(self):
|
||||
raise NotImplementedError
|
||||
|
||||
@populate_playlist
|
||||
def test_end_of_song_starts_next_track(self):
|
||||
raise NotImplementedError
|
||||
tracks = self.backend.current_playlist.playlist.tracks
|
||||
self.playback.play()
|
||||
self.playback.seek(tracks[0].length - 10)
|
||||
time.sleep(0.1)
|
||||
self.assertEqual(self.playback.current_track, tracks[1])
|
||||
|
||||
def test_end_of_playlist_stops(self):
|
||||
raise NotImplementedError
|
||||
|
||||
Loading…
Reference in New Issue
Block a user