Ejemplo n.º 1
0
    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)
Ejemplo n.º 2
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()]
Ejemplo n.º 3
0
    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'])