diff --git a/mopidy/backends/__init__.py b/mopidy/backends/__init__.py index 5ed4dbbb..e07b1ad8 100644 --- a/mopidy/backends/__init__.py +++ b/mopidy/backends/__init__.py @@ -117,6 +117,9 @@ class BasePlaybackController(object): self.stop() def next(self): + if self.consume: + self.backend.current_playlist.remove(self.current_track) + if not self.next_track: self.stop() else: diff --git a/tests/backends/basetests.py b/tests/backends/basetests.py index c23b81c3..2dede113 100644 --- a/tests/backends/basetests.py +++ b/tests/backends/basetests.py @@ -648,11 +648,19 @@ class BasePlaybackControllerTest(object): self.playback.volume = 1.0 / 3 * 100 self.assertEqual(self.playback.volume, 33) + @populate_playlist def test_play_with_consume(self): - raise NotImplementedError + self.playback.consume = True + self.playback.play() + self.assertEqual(self.playback.current_track, self.tracks[0]) + @populate_playlist def test_next_with_consume(self): - raise NotImplementedError + self.playback.consume = True + self.playback.play() + self.playback.next() + tracks = self.backend.current_playlist.playlist.tracks + self.assert_(self.tracks[0] not in tracks) def test_previous_track_with_consume(self): raise NotImplementedError