def test_with_new_uri(self): tracks = [Track()] last_modified = dt.datetime.now() playlist = Playlist(uri=u"an uri", name=u"a name", tracks=tracks, last_modified=last_modified) 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(list(new_playlist.tracks), tracks) self.assertEqual(new_playlist.last_modified, last_modified)
def test_with_new_name(self): tracks = [Track()] last_modified = datetime.datetime.utcnow() playlist = Playlist(uri="an uri", name="a name", tracks=tracks, last_modified=last_modified) new_playlist = playlist.copy(name="another name") self.assertEqual(new_playlist.uri, "an uri") self.assertEqual(new_playlist.name, "another name") self.assertEqual(list(new_playlist.tracks), tracks) self.assertEqual(new_playlist.last_modified, last_modified)
def test_with_new_last_modified(self): tracks = [Track()] last_modified = datetime.datetime.utcnow() new_last_modified = last_modified + datetime.timedelta(1) playlist = Playlist(uri="an uri", name="a name", tracks=tracks, last_modified=last_modified) new_playlist = playlist.copy(last_modified=new_last_modified) self.assertEqual(new_playlist.uri, "an uri") self.assertEqual(new_playlist.name, "a name") self.assertEqual(list(new_playlist.tracks), tracks) self.assertEqual(new_playlist.last_modified, new_last_modified)
def test_with_new_name(self): tracks = [Track()] last_modified = datetime.datetime.now() playlist = Playlist(uri=u'an uri', name=u'a name', tracks=tracks, last_modified=last_modified) 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(list(new_playlist.tracks), tracks) self.assertEqual(new_playlist.last_modified, last_modified)
def test_with_new_uri(self): tracks = [Track()] last_modified = datetime.datetime.utcnow() playlist = Playlist( uri='an uri', name='a name', tracks=tracks, last_modified=last_modified) new_playlist = playlist.copy(uri='another uri') self.assertEqual(new_playlist.uri, 'another uri') self.assertEqual(new_playlist.name, 'a name') self.assertEqual(list(new_playlist.tracks), tracks) self.assertEqual(new_playlist.last_modified, last_modified)
def test_with_new_name(self): tracks = [Track()] last_modified = 1390942873000 playlist = Playlist( uri='an uri', name='a name', tracks=tracks, last_modified=last_modified) new_playlist = playlist.copy(name='another name') self.assertEqual(new_playlist.uri, 'an uri') self.assertEqual(new_playlist.name, 'another name') self.assertEqual(list(new_playlist.tracks), tracks) self.assertEqual(new_playlist.last_modified, last_modified)
def test_with_new_last_modified(self): tracks = [Track()] last_modified = datetime.datetime.now() new_last_modified = last_modified + datetime.timedelta(1) playlist = Playlist(uri=u'an uri', name=u'a name', tracks=tracks, last_modified=last_modified) 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(list(new_playlist.tracks), tracks) self.assertEqual(new_playlist.last_modified, new_last_modified)
def test_with_new_name(self): tracks = [Track()] last_modified = 1390942873000 playlist = Playlist(uri='an uri', name='a name', tracks=tracks, last_modified=last_modified) new_playlist = playlist.copy(name='another name') self.assertEqual(new_playlist.uri, 'an uri') self.assertEqual(new_playlist.name, 'another name') self.assertEqual(list(new_playlist.tracks), tracks) self.assertEqual(new_playlist.last_modified, last_modified)
def test_with_new_tracks(self): tracks = [Track()] last_modified = datetime.datetime.utcnow() playlist = Playlist( uri='an uri', name='a name', tracks=tracks, last_modified=last_modified) new_tracks = [Track(), Track()] new_playlist = playlist.copy(tracks=new_tracks) self.assertEqual(new_playlist.uri, 'an uri') self.assertEqual(new_playlist.name, 'a name') self.assertEqual(list(new_playlist.tracks), new_tracks) self.assertEqual(new_playlist.last_modified, last_modified)
class InternetArchivePlaylistsProvider(backend.PlaylistsProvider): def __init__(self, config, backend): super(InternetArchivePlaylistsProvider, self).__init__(backend) self._bookmarks = [] self._username = config[Extension.ext_name]['username'] self._playlist = Playlist( uri='%s://%s/bookmarks' % (Extension.ext_name, self._username), name='Internet Archive Bookmarks' ) self.playlists = [self._playlist] def create(self, name): pass # TODO def delete(self, uri): pass # TODO def lookup(self, uri): for playlist in self.playlists: if playlist.uri == uri: return playlist return None def refresh(self): try: bookmarks = self.backend.client.bookmarks(self._username) logger.info('Loaded %d Internet Archive bookmarks', len(bookmarks)) if bookmarks == self._bookmarks: return # unchanged # FIXME: this can probably be removed when playlists return refs... tracks = self._tracks(bookmarks) logger.info('Loaded %d Internet Archive tracks', len(tracks)) self.playlists = [self._playlist.copy(tracks=tracks)] backend.BackendListener.send('playlists_loaded') self._bookmarks = bookmarks except Exception as e: logger.error('Error loading Internet Archive bookmarks: %s', e) def save(self, playlist): pass # TODO def _tracks(self, bookmarks): tracks = [] for doc in bookmarks: tracks.extend(self.backend.library._lookup(doc['identifier'])) return tracks
def test_copying_playlist(self): playlist = Playlist() self.compare(playlist, playlist.copy())