From ae9a25709173ba9512ff25569ece74f41de61f7b Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Tue, 20 Nov 2012 22:12:09 +0100 Subject: [PATCH] Make tracklist.add() only take and return lists --- mopidy/core/tracklist.py | 22 +++++----------------- tests/backends/base/__init__.py | 4 +--- tests/backends/base/tracklist.py | 12 ++++++------ tests/backends/local/playback_test.py | 2 +- tests/core/events_test.py | 12 ++++++------ 5 files changed, 19 insertions(+), 33 deletions(-) diff --git a/mopidy/core/tracklist.py b/mopidy/core/tracklist.py index a5ea6c11..0337828c 100644 --- a/mopidy/core/tracklist.py +++ b/mopidy/core/tracklist.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import logging import random -from mopidy.models import TlTrack, Track +from mopidy.models import TlTrack from . import listener @@ -70,26 +70,17 @@ class TracklistController(object): the tracklist. If ``at_position`` is not given, the tracks are appended to the end of the tracklist. - If ``tracks`` is a track object, a single - :class:`mopidy.models.TlTrack` object is returned. If ``tracks`` is a - list, a list of :class:`mopidy.models.TlTrack` is returned. - Triggers the :meth:`mopidy.core.CoreListener.tracklist_changed` event. - :param track: track to add - :type track: :class:`mopidy.models.Track` + :param tracks: tracks to add + :type tracks: list of :class:`mopidy.models.Track` :param at_position: position in tracklist to add track :type at_position: int or :class:`None` - :rtype: a single or a list of :class:`mopidy.models.TlTrack` + :rtype: list of :class:`mopidy.models.TlTrack` """ assert at_position is None or at_position <= len(self._tl_tracks), \ 'at_position can not be greater than tracklist length' - single_add = False - if isinstance(tracks, Track): - tracks = [tracks] - single_add = True - tl_tracks = [] for track in tracks: tl_track = TlTrack(self._next_tlid, track) @@ -104,10 +95,7 @@ class TracklistController(object): if tl_tracks: self._increase_version() - if single_add: - return tl_tracks[0] - else: - return tl_tracks + return tl_tracks def clear(self): """ diff --git a/tests/backends/base/__init__.py b/tests/backends/base/__init__.py index 477f8cc1..7dc4bcf6 100644 --- a/tests/backends/base/__init__.py +++ b/tests/backends/base/__init__.py @@ -3,9 +3,7 @@ from __future__ import unicode_literals def populate_tracklist(func): def wrapper(self): - self.tl_tracks = [] - for track in self.tracks: - self.tl_tracks.append(self.core.tracklist.add(track)) + self.tl_tracks = self.core.tracklist.add(self.tracks) return func(self) wrapper.__name__ = func.__name__ diff --git a/tests/backends/base/tracklist.py b/tests/backends/base/tracklist.py index 53b3288a..09b2b6a6 100644 --- a/tests/backends/base/tracklist.py +++ b/tests/backends/base/tracklist.py @@ -36,17 +36,17 @@ class TracklistControllerTest(object): def test_add(self): for track in self.tracks: - tl_track = self.controller.add(track) + tl_tracks = self.controller.add([track]) self.assertEqual(track, self.controller.tracks[-1]) - self.assertEqual(tl_track, self.controller.tl_tracks[-1]) - self.assertEqual(track, tl_track.track) + self.assertEqual(tl_tracks[0], self.controller.tl_tracks[-1]) + self.assertEqual(track, tl_tracks[0].track) def test_add_at_position(self): for track in self.tracks[:-1]: - tl_track = self.controller.add(track, 0) + tl_tracks = self.controller.add([track], 0) self.assertEqual(track, self.controller.tracks[0]) - self.assertEqual(tl_track, self.controller.tl_tracks[0]) - self.assertEqual(track, tl_track.track) + self.assertEqual(tl_tracks[0], self.controller.tl_tracks[0]) + self.assertEqual(track, tl_tracks[0].track) @populate_tracklist def test_add_at_position_outside_of_playlist(self): diff --git a/tests/backends/local/playback_test.py b/tests/backends/local/playback_test.py index 285270ce..9731f70d 100644 --- a/tests/backends/local/playback_test.py +++ b/tests/backends/local/playback_test.py @@ -27,7 +27,7 @@ class LocalPlaybackControllerTest(PlaybackControllerTest, unittest.TestCase): def add_track(self, path): uri = path_to_uri(path_to_data_dir(path)) track = Track(uri=uri, length=4464) - self.tracklist.add(track) + self.tracklist.add([track]) def test_uri_scheme(self): self.assertIn('file', self.core.uri_schemes) diff --git a/tests/core/events_test.py b/tests/core/events_test.py index b0ae2081..88f07de6 100644 --- a/tests/core/events_test.py +++ b/tests/core/events_test.py @@ -26,14 +26,14 @@ class BackendEventsTest(unittest.TestCase): self.assertEqual(send.call_args[0][0], 'playlists_loaded') def test_pause_sends_track_playback_paused_event(self, send): - self.core.tracklist.add(Track(uri='dummy:a')) + self.core.tracklist.add([Track(uri='dummy:a')]) self.core.playback.play().get() send.reset_mock() self.core.playback.pause().get() self.assertEqual(send.call_args[0][0], 'track_playback_paused') def test_resume_sends_track_playback_resumed(self, send): - self.core.tracklist.add(Track(uri='dummy:a')) + self.core.tracklist.add([Track(uri='dummy:a')]) self.core.playback.play() self.core.playback.pause().get() send.reset_mock() @@ -41,20 +41,20 @@ class BackendEventsTest(unittest.TestCase): self.assertEqual(send.call_args[0][0], 'track_playback_resumed') def test_play_sends_track_playback_started_event(self, send): - self.core.tracklist.add(Track(uri='dummy:a')) + self.core.tracklist.add([Track(uri='dummy:a')]) send.reset_mock() self.core.playback.play().get() self.assertEqual(send.call_args[0][0], 'track_playback_started') def test_stop_sends_track_playback_ended_event(self, send): - self.core.tracklist.add(Track(uri='dummy:a')) + self.core.tracklist.add([Track(uri='dummy:a')]) self.core.playback.play().get() send.reset_mock() self.core.playback.stop().get() self.assertEqual(send.call_args_list[0][0][0], 'track_playback_ended') def test_seek_sends_seeked_event(self, send): - self.core.tracklist.add(Track(uri='dummy:a', length=40000)) + self.core.tracklist.add([Track(uri='dummy:a', length=40000)]) self.core.playback.play().get() send.reset_mock() self.core.playback.seek(1000).get() @@ -62,7 +62,7 @@ class BackendEventsTest(unittest.TestCase): def test_tracklist_add_sends_tracklist_changed_event(self, send): send.reset_mock() - self.core.tracklist.add(Track(uri='dummy:a')).get() + self.core.tracklist.add([Track(uri='dummy:a')]).get() self.assertEqual(send.call_args[0][0], 'tracklist_changed') def test_tracklist_clear_sends_tracklist_changed_event(self, send):