def test_reduce_number_of_messages(self): p1 = SavedPlaylist(u'Playlist') p1.remove() p2 = SavedPlaylist(u'Playlist 2') p2.set_title(u'New Title') self.runUrgentCalls() # We don't need to see that p1 was added because it got # removed immediately after. We don't need to see that p2 was # changed because it will have the updated info in added. self.check_message_count(2) self.check_changed_message(1, added=[p2])
def test_reduce_number_of_messages(self): p1 = SavedPlaylist(u'Playlist') p1.remove() p2 = SavedPlaylist(u'Playlist 2') p2.set_title(u'New Title') self.runUrgentCalls() # We don't need to see that p1 was added because it got # removed immediately after. We don't need to see that p2 was # changed because it will have the updated info in added. self.check_message_count(2) self.check_changed_message(1, added=[p2])
class PlaylistFolderTestCase(PlaylistTestBase): def setUp(self): PlaylistTestBase.setUp(self) self.playlistTabOrder = tabs.TabOrder(u'playlist') self.p1 = SavedPlaylist(u"rocketboom", [self.i1.id, self.i3.id]) self.p2 = SavedPlaylist(u"telemusicvision", [self.i4.id, self.i3.id]) self.p3 = SavedPlaylist(u"digg", [self.i1.id, self.i2.id, self.i3.id, self.i4.id]) self.folder = PlaylistFolder(u"My Best Vids") self.p1.set_folder(self.folder) self.p2.set_folder(self.folder) self.p3.set_folder(self.folder) def check_list(self, correct_order): correct_ids = [item.id for item in correct_order] actual_ids = list(i.id for i in Item.playlist_folder_view(self.folder.id)) self.assertEquals(actual_ids, correct_ids) def test_add_playlists(self): self.check_list([self.i1, self.i3, self.i4, self.i2]) def test_change_folder(self): self.p3.set_folder(None) self.check_list([self.i1, self.i3, self.i4]) self.p2.set_folder(None) self.check_list([self.i1, self.i3]) self.p1.set_folder(None) self.check_list([]) def test_remove_playlist(self): self.p3.remove() self.check_list([self.i1, self.i3, self.i4]) self.p2.remove() self.check_list([self.i1, self.i3]) self.p1.remove() self.check_list([]) def test_remove_items_from_playlist(self): self.p3.remove_item(self.i2) self.check_list([self.i1, self.i3, self.i4]) self.p3.remove_item(self.i3) # i3 is still in other children of self.folder, so it # shouldn't be removed self.check_list([self.i1, self.i3, self.i4]) def test_order_independent(self): self.p3.reorder([self.i4.id, self.i2.id, self.i3.id, self.i1.id]) self.check_list([self.i1, self.i3, self.i4, self.i2]) self.folder.reorder([self.i4.id, self.i3.id, self.i2.id, self.i1.id]) self.check_list([self.i4, self.i3, self.i2, self.i1]) def test_remove_folder_removes_playlist(self): self.folder.remove() self.assertEquals(SavedPlaylist.make_view().count(), 0)
class PlaylistFolderTestCase(PlaylistTestBase): def setUp(self): PlaylistTestBase.setUp(self) self.playlistTabOrder = tabs.TabOrder(u'playlist') self.p1 = SavedPlaylist(u"rocketboom", [self.i1.id, self.i3.id]) self.p2 = SavedPlaylist(u"telemusicvision", [self.i4.id, self.i3.id]) self.p3 = SavedPlaylist(u"digg", [self.i1.id, self.i2.id, self.i3.id, self.i4.id]) self.folder = PlaylistFolder(u"My Best Vids") self.p1.set_folder(self.folder) self.p2.set_folder(self.folder) self.p3.set_folder(self.folder) def check_list(self, correct_order): correct_ids = [item.id for item in correct_order] actual_ids = list(i.id for i in Item.playlist_folder_view(self.folder.id)) self.assertEquals(actual_ids, correct_ids) def test_add_playlists(self): self.check_list([self.i1, self.i3, self.i4, self.i2]) def test_change_folder(self): self.p3.set_folder(None) self.check_list([self.i1, self.i3, self.i4]) self.p2.set_folder(None) self.check_list([self.i1, self.i3]) self.p1.set_folder(None) self.check_list([]) def test_remove_playlist(self): self.p3.remove() self.check_list([self.i1, self.i3, self.i4]) self.p2.remove() self.check_list([self.i1, self.i3]) self.p1.remove() self.check_list([]) def test_remove_items_from_playlist(self): self.p3.remove_item(self.i2) self.check_list([self.i1, self.i3, self.i4]) self.p3.remove_item(self.i3) # i3 is still in other children of self.folder, so it # shouldn't be removed self.check_list([self.i1, self.i3, self.i4]) def test_order_independent(self): self.p3.reorder([self.i4.id, self.i2.id, self.i3.id, self.i1.id]) self.check_list([self.i1, self.i3, self.i4, self.i2]) self.folder.reorder([self.i4.id, self.i3.id, self.i2.id, self.i1.id]) self.check_list([self.i4, self.i3, self.i2, self.i1]) def test_remove_folder_removes_playlist(self): self.folder.remove() self.assertEquals(SavedPlaylist.make_view().count(), 0)
class PlaylistTrackTest(TrackerTest): def setUp(self): TrackerTest.setUp(self) self.playlist1 = SavedPlaylist(u'Playlist 1') self.playlist2 = SavedPlaylist(u'Playlist 2') self.folder = PlaylistFolder(u'Playlist Folder') self.runUrgentCalls() messages.TrackPlaylists().send_to_backend() self.runUrgentCalls() def test_initial_list(self): self.assertEquals(len(self.test_handler.messages), 1) message = self.test_handler.messages[0] self.assert_(isinstance(message, messages.TabList)) self.assertEquals(message.type, 'playlist') self.check_info_list(message.toplevels, [self.playlist1, self.playlist2, self.folder]) self.check_info_list(message.folder_children[self.folder.id], []) self.assertEquals(len(message.folder_children), 1) def check_info(self, playlistInfo, playlist): self.assertEquals(playlistInfo.name, playlist.get_title()) self.assertEquals(playlistInfo.id, playlist.id) self.assertEquals(playlistInfo.is_folder, isinstance(playlist, PlaylistFolder)) def check_changed_message_type(self, message): self.assertEquals(type(message), messages.TabsChanged) self.assertEquals(message.type, 'playlist') def test_added(self): p = SavedPlaylist(u'http://example.com/3') self.runUrgentCalls() self.check_message_count(2) self.check_changed_message(1, added=[p]) def test_added_order(self): p1 = SavedPlaylist(u'Playlist 2') p2 = SavedPlaylist(u'Playlist 3') p3 = SavedPlaylist(u'Playlist 4') p4 = SavedPlaylist(u'Playlist 5') p5 = SavedPlaylist(u'Playlist 6') self.runUrgentCalls() # We want the PlaylistAdded messages to come in the same order # the feeds were added. self.check_message_count(2) self.check_changed_message(1, added=[p1, p2, p3, p4, p5]) def test_removed(self): self.playlist2.remove() self.runUrgentCalls() self.check_message_count(2) self.check_changed_message(1, removed=[self.playlist2]) def test_change(self): self.playlist1.set_title(u"Booya") self.runUrgentCalls() self.check_message_count(2) self.check_changed_message(1, changed=[self.playlist1]) def test_reduce_number_of_messages(self): p1 = SavedPlaylist(u'Playlist') p1.remove() p2 = SavedPlaylist(u'Playlist 2') p2.set_title(u'New Title') self.runUrgentCalls() # We don't need to see that p1 was added because it got # removed immediately after. We don't need to see that p2 was # changed because it will have the updated info in added. self.check_message_count(2) self.check_changed_message(1, added=[p2]) def test_stop(self): self.check_message_count(1) messages.StopTrackingPlaylists().send_to_backend() self.runUrgentCalls() self.playlist1.set_title(u"Booya") Feed(u'http://example.com/3') self.playlist2.remove() self.check_message_count(1)
class PlaylistTrackTest(TrackerTest): def setUp(self): TrackerTest.setUp(self) self.playlist1 = SavedPlaylist(u'Playlist 1') self.playlist2 = SavedPlaylist(u'Playlist 2') self.folder = PlaylistFolder(u'Playlist Folder') self.runUrgentCalls() messages.TrackPlaylists().send_to_backend() self.runUrgentCalls() def test_initial_list(self): self.assertEquals(len(self.test_handler.messages), 1) message = self.test_handler.messages[0] self.assert_(isinstance(message, messages.TabList)) self.assertEquals(message.type, 'playlist') self.check_info_list(message.toplevels, [self.playlist1, self.playlist2, self.folder]) self.check_info_list(message.folder_children[self.folder.id], []) self.assertEquals(len(message.folder_children), 1) def check_info(self, playlistInfo, playlist): self.assertEquals(playlistInfo.name, playlist.get_title()) self.assertEquals(playlistInfo.id, playlist.id) self.assertEquals(playlistInfo.is_folder, isinstance(playlist, PlaylistFolder)) def check_changed_message_type(self, message): self.assertEquals(type(message), messages.TabsChanged) self.assertEquals(message.type, 'playlist') def test_added(self): p = SavedPlaylist(u'http://example.com/3') self.runUrgentCalls() self.check_message_count(2) self.check_changed_message(1, added=[p]) def test_added_order(self): p1 = SavedPlaylist(u'Playlist 2') p2 = SavedPlaylist(u'Playlist 3') p3 = SavedPlaylist(u'Playlist 4') p4 = SavedPlaylist(u'Playlist 5') p5 = SavedPlaylist(u'Playlist 6') self.runUrgentCalls() # We want the PlaylistAdded messages to come in the same order # the feeds were added. self.check_message_count(2) self.check_changed_message(1, added=[p1, p2, p3, p4, p5]) def test_removed(self): self.playlist2.remove() self.runUrgentCalls() self.check_message_count(2) self.check_changed_message(1, removed=[self.playlist2]) def test_change(self): self.playlist1.set_title(u"Booya") self.runUrgentCalls() self.check_message_count(2) self.check_changed_message(1, changed=[self.playlist1]) def test_reduce_number_of_messages(self): p1 = SavedPlaylist(u'Playlist') p1.remove() p2 = SavedPlaylist(u'Playlist 2') p2.set_title(u'New Title') self.runUrgentCalls() # We don't need to see that p1 was added because it got # removed immediately after. We don't need to see that p2 was # changed because it will have the updated info in added. self.check_message_count(2) self.check_changed_message(1, added=[p2]) def test_stop(self): self.check_message_count(1) messages.StopTrackingPlaylists().send_to_backend() self.runUrgentCalls() self.playlist1.set_title(u"Booya") Feed(u'http://example.com/3') self.playlist2.remove() self.check_message_count(1)