CurrentPlaylistCtl.add() returns the cp_track that was added to the current playlist
This commit is contained in:
parent
6d5d4d857d
commit
80df6d1fea
@ -50,6 +50,8 @@ We got an updated :doc:`release roadmap <development/roadmap>`!
|
||||
lists of :class:`mopidy.models.Track` instead of
|
||||
:class:`mopidy.models.Playlist`, as none of the other fields on the
|
||||
``Playlist`` model was in use.
|
||||
- :meth:`mopidy.backends.BaseCurrentPlaylistController.add()` now returns the
|
||||
``cp_track`` added to the current playlist.
|
||||
- :meth:`mopidy.backends.BaseCurrentPlaylistController.remove()` now takes
|
||||
criterias, just like
|
||||
:meth:`mopidy.backends.BaseCurrentPlaylistController.get()`.
|
||||
|
||||
@ -122,14 +122,18 @@ class BaseCurrentPlaylistController(object):
|
||||
:type track: :class:`mopidy.models.Track`
|
||||
:param at_position: position in current playlist to add track
|
||||
:type at_position: int or :class:`None`
|
||||
:rtype: two-tuple of (CPID integer, :class:`mopidy.models.Track`) that
|
||||
was added to the current playlist playlist
|
||||
"""
|
||||
assert at_position <= len(self._cp_tracks), \
|
||||
u'at_position can not be greater than playlist length'
|
||||
cp_track = (self.version, track)
|
||||
if at_position is not None:
|
||||
self._cp_tracks.insert(at_position, (self.version, track))
|
||||
self._cp_tracks.insert(at_position, cp_track)
|
||||
else:
|
||||
self._cp_tracks.append((self.version, track))
|
||||
self._cp_tracks.append(cp_track)
|
||||
self.version += 1
|
||||
return cp_track
|
||||
|
||||
def clear(self):
|
||||
"""Clear the current playlist."""
|
||||
|
||||
@ -43,24 +43,23 @@ class BaseCurrentPlaylistControllerTest(object):
|
||||
|
||||
def test_add(self):
|
||||
for track in self.tracks:
|
||||
self.controller.add(track)
|
||||
cp_track = self.controller.add(track)
|
||||
self.assertEqual(track, self.controller.tracks[-1])
|
||||
self.assertEqual(cp_track, self.controller.cp_tracks[-1])
|
||||
self.assertEqual(track, cp_track[1])
|
||||
|
||||
def test_add_at_position(self):
|
||||
for track in self.tracks[:-1]:
|
||||
self.controller.add(track, 0)
|
||||
cp_track = self.controller.add(track, 0)
|
||||
self.assertEqual(track, self.controller.tracks[0])
|
||||
self.assertEqual(cp_track, self.controller.cp_tracks[0])
|
||||
self.assertEqual(track, cp_track[1])
|
||||
|
||||
@populate_playlist
|
||||
def test_add_at_position_outside_of_playlist(self):
|
||||
test = lambda: self.controller.add(self.tracks[0], len(self.tracks)+2)
|
||||
self.assertRaises(AssertionError, test)
|
||||
|
||||
@populate_playlist
|
||||
def test_add_sets_id_property(self):
|
||||
for track in self.controller.tracks:
|
||||
self.assertNotEqual(None, track.id)
|
||||
|
||||
@populate_playlist
|
||||
def test_get_by_cpid(self):
|
||||
cp_track = self.controller.cp_tracks[1]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user