From 037da6f4602c9121b809d4ed450bc7493c6fe967 Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Wed, 6 Apr 2011 18:01:33 +0200 Subject: [PATCH] Remove Playlist._tracks workaround --- mopidy/models.py | 14 +++++--------- tests/models_test.py | 10 +++++----- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/mopidy/models.py b/mopidy/models.py index b8e172f6..129c9ba8 100644 --- a/mopidy/models.py +++ b/mopidy/models.py @@ -1,5 +1,3 @@ -from copy import copy - from mopidy.frontends.mpd import translator class ImmutableObject(object): @@ -195,24 +193,22 @@ class Playlist(ImmutableObject): #: The playlist name. Read-only. name = None + #: The playlist's tracks. Read-only. + tracks = tuple() + #: The playlist modification time. Read-only. #: #: :class:`datetime.datetime`, or :class:`None` if unknown. last_modified = None def __init__(self, *args, **kwargs): - self._tracks = kwargs.pop('tracks', []) + self.__dict__['tracks'] = tuple(kwargs.pop('tracks', [])) super(Playlist, self).__init__(*args, **kwargs) - @property - def tracks(self): - """List of :class:`Track` elements. Read-only.""" - return copy(self._tracks) - @property def length(self): """The number of tracks in the playlist. Read-only.""" - return len(self._tracks) + return len(self.tracks) def mpd_format(self, *args, **kwargs): return translator.playlist_to_mpd_format(self, *args, **kwargs) diff --git a/tests/models_test.py b/tests/models_test.py index a8c34112..101ba877 100644 --- a/tests/models_test.py +++ b/tests/models_test.py @@ -486,7 +486,7 @@ class PlaylistTest(unittest.TestCase): def test_tracks(self): tracks = [Track(), Track(), Track()] playlist = Playlist(tracks=tracks) - self.assertEqual(playlist.tracks, tracks) + self.assertEqual(list(playlist.tracks), tracks) self.assertRaises(AttributeError, setattr, playlist, 'tracks', None) def test_length(self): @@ -509,7 +509,7 @@ class PlaylistTest(unittest.TestCase): new_playlist = playlist.copy(uri=u'another uri') self.assertEqual(new_playlist.uri, u'another uri') self.assertEqual(new_playlist.name, u'a name') - self.assertEqual(new_playlist.tracks, tracks) + self.assertEqual(list(new_playlist.tracks), tracks) self.assertEqual(new_playlist.last_modified, last_modified) def test_with_new_name(self): @@ -520,7 +520,7 @@ class PlaylistTest(unittest.TestCase): new_playlist = playlist.copy(name=u'another name') self.assertEqual(new_playlist.uri, u'an uri') self.assertEqual(new_playlist.name, u'another name') - self.assertEqual(new_playlist.tracks, tracks) + self.assertEqual(list(new_playlist.tracks), tracks) self.assertEqual(new_playlist.last_modified, last_modified) def test_with_new_tracks(self): @@ -532,7 +532,7 @@ class PlaylistTest(unittest.TestCase): new_playlist = playlist.copy(tracks=new_tracks) self.assertEqual(new_playlist.uri, u'an uri') self.assertEqual(new_playlist.name, u'a name') - self.assertEqual(new_playlist.tracks, new_tracks) + self.assertEqual(list(new_playlist.tracks), new_tracks) self.assertEqual(new_playlist.last_modified, last_modified) def test_with_new_last_modified(self): @@ -544,7 +544,7 @@ class PlaylistTest(unittest.TestCase): new_playlist = playlist.copy(last_modified=new_last_modified) self.assertEqual(new_playlist.uri, u'an uri') self.assertEqual(new_playlist.name, u'a name') - self.assertEqual(new_playlist.tracks, tracks) + self.assertEqual(list(new_playlist.tracks), tracks) self.assertEqual(new_playlist.last_modified, new_last_modified) def test_invalid_kwarg(self):