Beispiel #1
0
 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])
Beispiel #2
0
 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, "")
Beispiel #3
0
 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)
Beispiel #4
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))
Beispiel #5
0
 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))
Beispiel #6
0
 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))
Beispiel #7
0
 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))
Beispiel #8
0
 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])
Beispiel #9
0
 def test_invalid_entry_attribute(self):
     webring.fetch_feeds(self.generators)
     articles = self.get_fetched_articles()
     self.assertEqual(articles[0].invalid_attribute, "")
Beispiel #10
0
 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, "")
Beispiel #11
0
 def test_malformed_url(self):
     self.set_feeds(["://pelican-atom.xml"])
     webring.fetch_feeds(self.generators)
     self.assertEqual(len(self.get_fetched_articles()), 0)
Beispiel #12
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))
Beispiel #13
0
 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))