Changeset View
Changeset View
Standalone View
Standalone View
swh/lister/github/tests/test_gh_lister.py
- This file was added.
# Copyright (C) 2017 the Software Heritage developers | |||||
# License: GNU General Public License version 3, or any later version | |||||
# See top-level LICENSE file for more information | |||||
from swh.lister.github.lister import GitHubLister | |||||
import re | |||||
from swh.lister.core.tests.test_lister import ListerTesterBase | |||||
import unittest | |||||
from datetime import datetime, timedelta | |||||
class GitHubListerTester(ListerTesterBase, unittest.TestCase): | |||||
Lister = GitHubLister | |||||
test_re = re.compile(r'/repositories\?since=([^?&]+)') | |||||
lister_subdir = 'github' | |||||
INDEX = 26 | |||||
ENTRIES_PER_PAGE = 100 | |||||
def response_headers(self, request): | |||||
headers = {'X-RateLimit-Remaining': '1'} | |||||
if self.request_index(request) == str(self.INDEX): | |||||
headers.update({ | |||||
'Link': '<https://api.github.com/repositories?since=367>;' | |||||
' rel="next",' | |||||
'<https://api.github.com/repositories{?since}>;' | |||||
' rel="first"' | |||||
}) | |||||
else: | |||||
headers.update({ | |||||
'Link': '<https://api.github.com/repositories{?since}>;' | |||||
' rel="first"' | |||||
}) | |||||
return headers | |||||
def mock_rate_quota(self, n, request, context): | |||||
self.rate_limit += 1 | |||||
context.status_code = 403 | |||||
context.headers['X-RateLimit-Remaining'] = '0' | |||||
one_second = int((datetime.now() + timedelta(seconds=1.5)).timestamp()) | |||||
context.headers['X-RateLimit-Reset'] = str(one_second) | |||||
return '{"error":"dummy"}' |