Exemple #1
0
 def test_callbacks(self):
     initialList = [self.i1, self.i2, self.i3]
     playlist = SavedPlaylist(u"rocketboom", [i.id for i in initialList])
     tracker = Item.playlist_view(playlist.id).make_tracker()
     tracker.connect('added', self.add_callback)
     tracker.connect('removed', self.remove_callback)
     playlist.add_item(self.i4)
     self.check_callbacks([self.i4], [])
     playlist.remove_item(self.i3)
     self.check_callbacks([self.i4], [self.i3])
Exemple #2
0
 def test_callbacks(self):
     initialList = [self.i1, self.i2, self.i3]
     playlist = SavedPlaylist(u"rocketboom", [i.id for i in initialList])
     tracker = Item.playlist_view(playlist.id).make_tracker()
     tracker.connect('added', self.add_callback)
     tracker.connect('removed', self.remove_callback)
     playlist.add_item(self.i4)
     self.check_callbacks([self.i4], [])
     playlist.remove_item(self.i3)
     self.check_callbacks([self.i4], [self.i3])
Exemple #3
0
 def test_basic_operations(self):
     playlist = SavedPlaylist(u"rocketboom")
     self.assertEquals(playlist.get_title(), u'rocketboom')
     self.check_list(playlist, [])
     playlist.add_item(self.i4)
     playlist.add_item(self.i1)
     playlist.add_item(self.i3)
     playlist.add_item(self.i2)
     self.check_list(playlist, [self.i4, self.i1, self.i3, self.i2])
     playlist.add_item(self.i2)
     self.check_list(playlist, [self.i4, self.i1, self.i3, self.i2])
     self.assert_(self.i1.keep)
     self.assert_(self.i2.keep)
     self.assert_(self.i3.keep)
     self.assert_(self.i4.keep)
     playlist.remove_item(self.i2)
     self.check_list(playlist, [self.i4, self.i1, self.i3])
     playlist.reorder([self.i3.id, self.i4.id, self.i1.id])
     self.check_list(playlist, [self.i3, self.i4, self.i1])
     playlist.remove_item(self.i3)
     self.check_list(playlist, [self.i4, self.i1])
Exemple #4
0
 def test_basic_operations(self):
     playlist = SavedPlaylist(u"rocketboom")
     self.assertEquals(playlist.get_title(), u'rocketboom')
     self.check_list(playlist, [])
     playlist.add_item(self.i4)
     playlist.add_item(self.i1)
     playlist.add_item(self.i3)
     playlist.add_item(self.i2)
     self.check_list(playlist, [self.i4, self.i1, self.i3, self.i2])
     playlist.add_item(self.i2)
     self.check_list(playlist, [self.i4, self.i1, self.i3, self.i2])
     self.assert_(self.i1.keep)
     self.assert_(self.i2.keep)
     self.assert_(self.i3.keep)
     self.assert_(self.i4.keep)
     playlist.remove_item(self.i2)
     self.check_list(playlist, [self.i4, self.i1, self.i3])
     playlist.reorder([self.i3.id, self.i4.id, self.i1.id])
     self.check_list(playlist, [self.i3, self.i4, self.i1])
     playlist.remove_item(self.i3)
     self.check_list(playlist, [self.i4, self.i1])
Exemple #5
0
class PlaylistItemTrackTest(TrackerTest):
    def setUp(self):
        TrackerTest.setUp(self)
        self.items = []
        self.feed = Feed(u'dtv:manualFeed')
        self.playlist = SavedPlaylist(u'test playlist')
        self.make_item(u'http://example.com/')
        self.make_item(u'http://example.com/2')
        self.runUrgentCalls()
        messages.TrackItems('playlist', self.playlist.id).send_to_backend()
        self.runUrgentCalls()

    def make_item(self, url):
        entry = _build_entry(url, 'video/x-unknown')
        item_ = Item(FeedParserValues(entry), feed_id=self.feed.id)
        self.items.append(item_)
        self.playlist.add_item(item_)

    def checkDownloadInfo(self, info, item):
        downloader = item.downloader
        self.assertEquals(info.current_size, downloader.get_current_size())
        self.assertEquals(info.rate, downloader.get_rate())
        self.assertEquals(info.state, downloader.get_state())

    def check_info(self, itemInfo, item):
        self.assertEquals(itemInfo.name, item.get_title())
        self.assertEquals(itemInfo.description, item.get_description())
        self.assertEquals(itemInfo.release_date, item.get_release_date())
        self.assertEquals(itemInfo.size, item.get_size())
        self.assertEquals(itemInfo.permalink, item.get_link())
        self.assertEquals(itemInfo.id, item.id)
        self.assertEquals(itemInfo.expiration_date, item.get_expiration_time())
        self.assertEquals(itemInfo.thumbnail, item.get_thumbnail())
        if item.downloader:
            self.checkDownloadInfo(itemInfo.download_info)
        else:
            self.assertEquals(itemInfo.download_info, None)

    def check_changed_message_type(self, message):
        self.assertEquals(type(message), messages.ItemsChanged)
        self.assertEquals(message.type, 'playlist')

    def test_initial_list(self):
        self.assertEquals(len(self.test_handler.messages), 1)
        message = self.test_handler.messages[0]
        self.assert_(isinstance(message, messages.ItemList))
        self.assertEquals(message.type, 'playlist')
        self.assertEquals(message.id, self.playlist.id)

        self.assertEquals(len(message.items), len(self.items))
        message.items.sort(key=lambda i: i.id)
        self.check_info_list(message.items, self.items)

    def test_update(self):
        self.items[0].entry_title = u'new name'
        self.items[0].signal_change()
        self.runUrgentCalls()
        self.assertEquals(len(self.test_handler.messages), 2)
        self.check_changed_message(1, changed=[self.items[0]])

    def test_add(self):
        self.make_item(u'http://example.com/3')
        self.make_item(u'http://example.com/4')
        self.make_item(u'http://example.com/5')
        self.runUrgentCalls()
        self.assertEquals(len(self.test_handler.messages), 2)
        self.check_changed_message(1, added=self.items[2:])

    def test_remove(self):
        self.items[1].remove()
        self.runUrgentCalls()
        self.assertEquals(len(self.test_handler.messages), 2)
        self.check_changed_message(1, removed=[self.items[1]])

    def test_stop(self):
        messages.StopTrackingItems('playlist',
                                   self.playlist.id).send_to_backend()
        self.runUrgentCalls()
        self.items[0].entry_title = u'new name'
        self.items[0].signal_change()
        self.items[1].remove()
        self.make_item(u'http://example.com/4')
        self.runUrgentCalls()
        self.assertEquals(len(self.test_handler.messages), 1)
Exemple #6
0
class PlaylistItemTrackTest(TrackerTest):
    def setUp(self):
        TrackerTest.setUp(self)
        self.items = []
        self.feed = Feed(u'dtv:manualFeed')
        self.playlist = SavedPlaylist(u'test playlist')
        self.make_item(u'http://example.com/')
        self.make_item(u'http://example.com/2')
        self.runUrgentCalls()
        messages.TrackItems('playlist', self.playlist.id).send_to_backend()
        self.runUrgentCalls()

    def make_item(self, url):
        entry = _build_entry(url, 'video/x-unknown')
        item_ = Item(FeedParserValues(entry), feed_id=self.feed.id)
        self.items.append(item_)
        self.playlist.add_item(item_)

    def checkDownloadInfo(self, info, item):
        downloader = item.downloader
        self.assertEquals(info.current_size, downloader.get_current_size())
        self.assertEquals(info.rate, downloader.get_rate())
        self.assertEquals(info.state, downloader.get_state())

    def check_info(self, itemInfo, item):
        self.assertEquals(itemInfo.name, item.get_title())
        self.assertEquals(itemInfo.description, item.get_description())
        self.assertEquals(itemInfo.release_date, item.get_release_date())
        self.assertEquals(itemInfo.size, item.get_size())
        self.assertEquals(itemInfo.permalink, item.get_link())
        self.assertEquals(itemInfo.id, item.id)
        self.assertEquals(itemInfo.expiration_date, item.get_expiration_time())
        self.assertEquals(itemInfo.thumbnail, item.get_thumbnail())
        if item.downloader:
            self.checkDownloadInfo(itemInfo.download_info)
        else:
            self.assertEquals(itemInfo.download_info, None)

    def check_changed_message_type(self, message):
        self.assertEquals(type(message), messages.ItemsChanged)
        self.assertEquals(message.type, 'playlist')

    def test_initial_list(self):
        self.assertEquals(len(self.test_handler.messages), 1)
        message = self.test_handler.messages[0]
        self.assert_(isinstance(message, messages.ItemList))
        self.assertEquals(message.type, 'playlist')
        self.assertEquals(message.id, self.playlist.id)

        self.assertEquals(len(message.items), len(self.items))
        message.items.sort(key=lambda i: i.id)
        self.check_info_list(message.items, self.items)

    def test_update(self):
        self.items[0].entry_title = u'new name'
        self.items[0].signal_change()
        self.runUrgentCalls()
        self.assertEquals(len(self.test_handler.messages), 2)
        self.check_changed_message(1, changed=[self.items[0]])

    def test_add(self):
        self.make_item(u'http://example.com/3')
        self.make_item(u'http://example.com/4')
        self.make_item(u'http://example.com/5')
        self.runUrgentCalls()
        self.assertEquals(len(self.test_handler.messages), 2)
        self.check_changed_message(1, added=self.items[2:])

    def test_remove(self):
        self.items[1].remove()
        self.runUrgentCalls()
        self.assertEquals(len(self.test_handler.messages), 2)
        self.check_changed_message(1, removed=[self.items[1]])

    def test_stop(self):
        messages.StopTrackingItems(
            'playlist', self.playlist.id).send_to_backend()
        self.runUrgentCalls()
        self.items[0].entry_title = u'new name'
        self.items[0].signal_change()
        self.items[1].remove()
        self.make_item(u'http://example.com/4')
        self.runUrgentCalls()
        self.assertEquals(len(self.test_handler.messages), 1)