Changeset View
Changeset View
Standalone View
Standalone View
swh/lister/gnu/tests/test_lister.py
# Copyright (C) 2019 the Software Heritage developers | # Copyright (C) 2019 the Software Heritage developers | ||||
# License: GNU General Public License version 3, or any later version | # License: GNU General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
import json | import json | ||||
import re | |||||
from swh.lister.gnu.lister import find_tarballs, filter_directories | from os.path import join, dirname | ||||
from swh.lister.gnu.lister import file_extension_check | from urllib.parse import urlparse | ||||
from swh.lister.gnu.lister import ( | |||||
GNULister, find_tarballs, filter_directories, file_extension_check | |||||
) | |||||
DATADIR = join(dirname(__file__), 'data') | |||||
def get_response_cb(request, context): | |||||
"""Mock the http request to send back the on-disk file handler | |||||
""" | |||||
url = urlparse(request.url) | |||||
dirname = url.hostname | |||||
filename = url.path[1:].replace('/', '_') | |||||
douardda: wouldn't it be the right moment to (at least) move this in `swh/lister/core/tests/conftest.py`… | |||||
Done Inline ActionsI entertained the idea then i did not really know how to "properly" handle the DATADIR which is different between listers. ardumont: I entertained the idea then i did not really know how to "properly" handle the DATADIR which is… | |||||
Done Inline Actionswip in swh-core ardumont: wip in swh-core | |||||
Done Inline Actionsno longer wip, it's happening -> D2082 ardumont: no longer wip, it's happening -> D2082 | |||||
return open(join(DATADIR, dirname, filename), 'rb') | |||||
def test_lister_no_page(requests_mock): | |||||
requests_mock.get(re.compile('https://ftp.gnu.org'), body=get_response_cb) | |||||
lister = GNULister() | |||||
# Note: identifier None is unused | |||||
packages = lister.list_packages(lister.safely_issue_request(None)) | |||||
assert len(packages) == 382 | |||||
package = packages[0] | |||||
for k in ['name', 'url', 'time_modified']: | |||||
assert k in package.keys() | |||||
def test_filter_directories(): | def test_filter_directories(): | ||||
f = open('swh/lister/gnu/tests/api_response.json') | f = open('swh/lister/gnu/tests/api_response.json') | ||||
api_response = json.load(f) | api_response = json.load(f) | ||||
cleared_api_response = filter_directories(api_response) | cleared_api_response = filter_directories(api_response) | ||||
for directory in cleared_api_response: | for directory in cleared_api_response: | ||||
if directory['name'] not in ('gnu', 'old-gnu'): | if directory['name'] not in ('gnu', 'old-gnu'): | ||||
▲ Show 20 Lines • Show All 43 Lines • Show Last 20 Lines |
wouldn't it be the right moment to (at least) move this in swh/lister/core/tests/conftest.py (or so)?