def test_fetch_from_empty_cache(self): """Test if there are not any articles returned when the cache is empty""" cache = Cache(self.tmp_path) nntp = NNTP(NNTP_SERVER, NNTP_GROUP, cache=cache) cached_articles = [article for article in nntp.fetch_from_cache()] self.assertEqual(len(cached_articles), 0)
def test_fetch_from_non_set_cache(self): """Test if a error is raised when the cache was not set""" nntp = NNTP(NNTP_SERVER, NNTP_GROUP) with self.assertRaises(CacheError): _ = [article for article in nntp.fetch_from_cache()]
def test_fetch_from_cache(self, mock_nntp): """Test whether the cache works""" mock_nntp.return_value = MockNNTPLib() # First, we fetch the tasks from the server, # storing them in a cache cache = Cache(self.tmp_path) nntp = NNTP(NNTP_SERVER, NNTP_GROUP, cache=cache) articles = [article for article in nntp.fetch()] self.assertEqual(len(articles), 2) # Now, we get the articles from the cache which # should be the same cached_articles = [article for article in nntp.fetch_from_cache()] self.assertEqual(len(cached_articles), len(articles)) expected = [ ('<*****@*****.**>', 1, 'd088688545d7c2f3733993e215503b367193a26d', 1458039948.0), ('<*****@*****.**>', 2, '8a20c77405349f442dad8e3ee8e60d392cc75ae7', 1458076496.0) ] expected_origin = NNTP_SERVER + '-' + NNTP_GROUP self.assertEqual(len(cached_articles), len(expected)) for x in range(len(cached_articles)): carticle = cached_articles[x] expc = expected[x] self.assertEqual(carticle['data']['message_id'], expc[0]) self.assertEqual(carticle['offset'], expc[1]) self.assertEqual(carticle['uuid'], expc[2]) self.assertEqual(carticle['origin'], expected_origin) self.assertEqual(carticle['updated_on'], expc[3]) self.assertEqual(carticle['category'], 'article') self.assertEqual(carticle['tag'], expected_origin) # Compare chached and fetched task self.assertDictEqual(carticle['data'], articles[x]['data'])