def setUp(self): MiroTestCase.setUp(self) self.feed = Feed(u'http://example.com/1') self.item1 = Item(fp_values_for_url(u'http://example.com/1/item1'), feed_id=self.feed.id) self.item2 = Item(fp_values_for_url(u'http://example.com/1/item2'), feed_id=self.feed.id)
def setUp(self): EventLoopTest.setUp(self) self.feed = Feed(u"http://feed.uk") self.i1 = Item(FeedParserValues({'title': u'item1'}), feed_id=self.feed.id) self.i2 = Item(FeedParserValues({'title': u'item2'}), feed_id=self.feed.id) self.i3 = Item(FeedParserValues({'title': u'item3'}), feed_id=self.feed.id) self.i4 = Item(FeedParserValues({'title': u'item4'}), feed_id=self.feed.id)
def test_expired_view_1(self): f1 = Feed(u'http://example.com/1') i1 = Item(fp_values_for_url(u'http://example.com/1/item1'), feed_id=f1.id) i2 = Item(fp_values_for_url(u'http://example.com/1/item2'), feed_id=f1.id) f1.set_expiration(u'never', 0) i1.watched_time = i2.watched_time = datetime.now() for obj in (f1, i1, i2): obj.signal_change() self.assertEquals(list(f1.expiring_items()), [])
def test_watched_time_reset(self): feed = Feed(u'http://example.com/1') item = Item(fp_values_for_url(u'http://example.com/1/item1'), feed_id=feed.id) item.watched_time = datetime.now() item.expire() self.assertEquals(item.watched_time, None)
def test_expired_view_3(self): f3 = Feed(u'http://example.com/3') i5 = Item(fp_values_for_url(u'http://example.com/3/item1'), feed_id=f3.id) i6 = Item(fp_values_for_url(u'http://example.com/3/item2'), feed_id=f3.id) f3.set_expiration(u'feed', 24) i5.watched_time = datetime.now() - timedelta(days=3) i6.watched_time = datetime.now() - timedelta(hours=12) for obj in (f3, i5, i6): obj.signal_change() self.assertEquals(list(f3.expiring_items()), [i5])
def test_set_rating(self): feed = Feed(u'http://example.com/1') item = Item(fp_values_for_url(u'http://example.com/1/item1'), feed_id=feed.id) item.set_rating(5) self.assertEquals(item.rating, 5) item.set_rating(3) self.assertEquals(item.rating, 3)
def test_expired_view_2(self): f2 = Feed(u'http://example.com/2') i3 = Item(fp_values_for_url(u'http://example.com/2/item1'), feed_id=f2.id) i4 = Item(fp_values_for_url(u'http://example.com/2/item2'), feed_id=f2.id) f2.set_expiration(u'system', 0) # system default is 6 days as set in setUp, so i3 should expire, # but i4 should not. i3.watched_time = datetime.now() - timedelta(days=12) i4.watched_time = datetime.now() - timedelta(days=3) for obj in (f2, i3, i4): obj.signal_change() self.assertEquals(list(f2.expiring_items()), [i3])
def test_strips_tags(self): # Only feeds created with a title get the tags stripped in the title. # When using item.set_title() no tags are stripped. f1 = Feed(u'http://example.com/1') item = Item(fp_values_for_url(u'http://example.com/1/item1', {'title': u"<em>miro</em>"}), feed_id=f1.id) self.assertEquals(item.matches_search('miro'), True) self.assertEquals(item.matches_search('<em'), False) self.assertEquals(item.matches_search('em>'), False) self.assertEquals(item.matches_search('<em>miro</miro'), False)
def test_remove_before_downloader_referenced(self): # when items are restored from the DB, the downloader # attribute is loaded lazily. Make sure that if we remove the # item, the downloader is still removed. feed = Feed(u'http://example.com/1') item = Item(fp_values_for_url(u'http://example.com/1/item1'), feed_id=feed.id) item.set_downloader( RemoteDownloader(u'http://example.com/1/item1/movie.mpeg', item)) downloader = item.downloader feed = self.reload_object(feed) downloader = self.reload_object(downloader) item = self.reload_object(item) item.remove() self.assert_(not downloader.id_exists())
def test_get_auto_rating(self): feed = Feed(u'http://example.com/1') item = Item(fp_values_for_url(u'http://example.com/1/item1'), feed_id=feed.id) # no rating if it hasn't been played/skipped item.play_count = 0 item.skip_count = 0 self.assertEquals(item.get_auto_rating(), None) item.play_count = 0 item.skip_count = 1 self.assertEquals(item.get_auto_rating(), 1) item.play_count = 5 item.skip_count = 5 self.assertEquals(item.get_auto_rating(), 1) item.play_count = 5 item.skip_count = 0 self.assertEquals(item.get_auto_rating(), 5)
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_)
def make_item(self, url, title=u'default item title'): additional = {'title': title} entry = _build_entry(url, 'video/x-unknown', additional) item_ = Item(FeedParserValues(entry), feed_id=self.feed.id) self.items.append(item_)
def make_regular_item(self, feed): url = u'http://example.com/1/item1' item = Item(fp_values_for_url(url), feed_id=feed.id) item.set_downloader(RemoteDownloader(url, item)) return item