diff --git a/docs/changes.rst b/docs/changes.rst index d2e7d7b5..bf5dd8cb 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -111,6 +111,11 @@ backends: - The Spotify backend now returns the track if you search for the Spotify track URI. (Fixes: :issue:`233`) +- :meth:`mopidy.core.TracklistController.append` now returns a list of the + :class:`mopidy.models.TlTrack` instances that was added to the tracklist. + This makes it easier to start playing one of the tracks that was just + appended to the tracklist. + **Bug fixes** - :issue:`218`: The MPD commands ``listplaylist`` and ``listplaylistinfo`` now diff --git a/mopidy/core/tracklist.py b/mopidy/core/tracklist.py index 529d2a7a..5458ee3e 100644 --- a/mopidy/core/tracklist.py +++ b/mopidy/core/tracklist.py @@ -92,13 +92,17 @@ class TracklistController(object): :param tracks: tracks to append :type tracks: list of :class:`mopidy.models.Track` + :rtype: list of class:`mopidy.models.TlTrack` """ + tl_tracks = [] for track in tracks: - self.add(track, increase_version=False) + tl_tracks.append(self.add(track, increase_version=False)) if tracks: self.version += 1 + return tl_tracks + def clear(self): """Clear the current playlist.""" self._tl_tracks = [] diff --git a/tests/backends/base/tracklist.py b/tests/backends/base/tracklist.py index 64ab10d4..e67a40e4 100644 --- a/tests/backends/base/tracklist.py +++ b/tests/backends/base/tracklist.py @@ -153,10 +153,13 @@ class TracklistControllerTest(object): self.assertEqual(self.playback.state, PlaybackState.STOPPED) self.assertEqual(self.playback.current_track, None) + @populate_playlist + def test_append_returns_the_tl_tracks_that_was_added(self): + tl_tracks = self.controller.append(self.controller.tracks[1:2]) + self.assertEqual(tl_tracks[0][1], self.controller.tracks[1]) + def test_index_returns_index_of_track(self): - tl_tracks = [] - for track in self.tracks: - tl_tracks.append(self.controller.add(track)) + tl_tracks = self.controller.append(self.tracks) self.assertEquals(0, self.controller.index(tl_tracks[0])) self.assertEquals(1, self.controller.index(tl_tracks[1])) self.assertEquals(2, self.controller.index(tl_tracks[2]))