def test_articles_per_feed(self): self.settings[webring.WEBRING_MAX_ARTICLES_STR] = 6 self.settings[webring.WEBRING_ARTICLES_PER_FEED_STR] = 3 webring.fetch_feeds(self.generators) articles = self.get_fetched_articles() feed_counts = Counter(a.source_id for a in articles) self.assertEqual(list(map(itemgetter(1), feed_counts.items())), [3, 3])
def test_common_attributes(self): """These are attributes present in ALL articles in both RSS and Atom test feeds. Optional attributes are not checked. """ webring.fetch_feeds(self.generators) articles = self.get_fetched_articles() for a in articles: self.assertIsInstance(a.published, utils.SafeDatetime) self.assertIsInstance(a.updated, utils.SafeDatetime) self.assertEqual(a.date, a.published) self.assertEqual(a.created, None) self.assertEqual(a.expired, None) self.assertNotEqual(a.author, "") self.assertNotEqual(a.link, "") self.assertNotEqual(a.id, "") self.assertNotEqual(a.summary, "") self.assertNotEqual(a.source_title, "") self.assertNotEqual(a.source_link, "")
def test_malformed_url(self): self.settings[webring.WEBRING_FEED_URLS_STR] = [ "://pelican-atom.xml", ] webring.fetch_feeds(self.generators) self.assertEqual(len(self.get_fetched_articles()), 0)
def test_long_summary_length(self): self.settings[webring.WEBRING_SUMMARY_LENGTH_STR] = 1000 webring.fetch_feeds(self.generators) articles = self.get_fetched_articles() self.assertTrue(not any(a.summary.endswith("...") for a in articles))
def test_summary_length(self): self.settings[webring.WEBRING_SUMMARY_LENGTH_STR] = 10 webring.fetch_feeds(self.generators) articles = self.get_fetched_articles() self.assertTrue( all(len(a.summary) - len("...") <= 10 for a in articles))
def test_dont_clean_summary(self): self.settings[webring.WEBRING_CLEAN_SUMMARY_HTML_STR] = False webring.fetch_feeds(self.generators) articles = self.get_fetched_articles() summaries = list(map(attrgetter("summary"), articles)) self.assertTrue(all(s.find("<") >= 0 for s in summaries))
def test_clean_summary(self): webring.fetch_feeds(self.generators) articles = self.get_fetched_articles() summaries = list(map(attrgetter("summary"), articles)) self.assertTrue(all(s.find("<") < 0 for s in summaries))
def test_max_articles(self): webring.fetch_feeds(self.generators) articles = self.get_fetched_articles() self.assertLessEqual(len(articles), self.settings[webring.WEBRING_MAX_ARTICLES_STR])
def test_invalid_entry_attribute(self): webring.fetch_feeds(self.generators) articles = self.get_fetched_articles() self.assertEqual(articles[0].invalid_attribute, "")
def test_common_atom_attributes(self): self.set_feeds([self.feed_url("atom")]) webring.fetch_feeds(self.generators) articles = self.get_fetched_articles() for a in articles: self.assertNotEqual(a.source_id, "")
def test_malformed_url(self): self.set_feeds(["://pelican-atom.xml"]) webring.fetch_feeds(self.generators) self.assertEqual(len(self.get_fetched_articles()), 0)
def test_summary_disabled(self): self.settings[webring.WEBRING_SUMMARY_WORDS_STR] = 0 webring.fetch_feeds(self.generators) articles = self.get_fetched_articles() self.assertFalse(any(a.summary.endswith("…") for a in articles))
def test_summary_length(self): self.settings[webring.WEBRING_SUMMARY_WORDS_STR] = 3 webring.fetch_feeds(self.generators) articles = self.get_fetched_articles() self.assertTrue(all(len(a.summary) <= 30 for a in articles))