Esempio n. 1
0
def get_pseudo_package_list():
    """
    Existing pseudo packages for Debian are obtained from
    `BTS <http://bugs.debian.org/pseudo-packages.maintainers>`_
    """
    PSEUDO_PACKAGE_LIST_URL = (
        'http://bugs.debian.org/pseudo-packages.maintainers'
    )
    cache = HttpCache(settings.PTS_CACHE_DIRECTORY)
    if not cache.is_expired(PSEUDO_PACKAGE_LIST_URL):
        return
    response, updated = cache.update(PSEUDO_PACKAGE_LIST_URL)

    try:
        response.raise_for_status()
    except requests.exceptions.HTTPError as e:
        raise PluginProcessingError()

    if not updated:
        return

    return [
        line.split(None, 1)[0]
        for line in response.text.splitlines()
    ]
Esempio n. 2
0
    def test_cache_expires_header_expired(self, mock_requests):
        """
        Tests that the cache knows that a cached response is expired based
        on its Expires header.
        """
        expires = http_date(time.time() - 3600)
        self.set_mock_response(mock_requests, headers={
            'Expires': expires
        })
        cache = HttpCache(self.cache_directory)
        url = 'http://example.com'
        cache.update(url)

        self.assertTrue(cache.is_expired(url))
Esempio n. 3
0
    def test_cache_expired(self, mock_requests):
        """
        Tests that the cache knows when an entry with a stale Cache-Control
        header is expired.
        """
        self.set_mock_response(mock_requests, headers={
            'Cache-Control': 'must-revalidate, max-age=0',
        })
        cache = HttpCache(self.cache_directory)
        url = 'http://example.com'

        cache.update(url)

        self.assertTrue(url in cache)
        self.assertTrue(cache.is_expired(url))
Esempio n. 4
0
    def test_cache_not_expired(self, mock_requests):
        """
        Tests that the cache knows a response is not expired based on its
        Cache-Control header.
        """
        self.set_mock_response(mock_requests, headers={
            'Cache-Control': 'must-revalidate, max-age=3600',
        })
        cache = HttpCache(self.cache_directory)
        url = 'http://example.com'

        cache.update(url)

        self.assertTrue(url in cache)
        self.assertFalse(cache.is_expired(url))