Changeset View
Changeset View
Standalone View
Standalone View
swh/lister/cgit/tests/test_lister.py
# Copyright (C) 2019-2021 The Software Heritage developers | # Copyright (C) 2019-2021 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 | ||||
from datetime import datetime, timedelta, timezone | from datetime import datetime, timedelta, timezone | ||||
from typing import List | from typing import List | ||||
import pytest | import pytest | ||||
from swh.core.pytest_plugin import requests_mock_datadir_factory | |||||
from swh.lister import __version__ | from swh.lister import __version__ | ||||
from swh.lister.cgit.lister import CGitLister, _parse_last_updated_date | from swh.lister.cgit.lister import CGitLister, _parse_last_updated_date | ||||
from swh.lister.pattern import ListerStats | from swh.lister.pattern import ListerStats | ||||
def test_lister_cgit_get_pages_one_page(requests_mock_datadir, swh_scheduler): | def test_lister_cgit_get_pages_one_page(requests_mock_datadir, swh_scheduler): | ||||
url = "https://git.savannah.gnu.org/cgit/" | url = "https://git.savannah.gnu.org/cgit/" | ||||
lister_cgit = CGitLister(swh_scheduler, url=url) | lister_cgit = CGitLister(swh_scheduler, url=url) | ||||
▲ Show 20 Lines • Show All 119 Lines • ▼ Show 20 Lines | @pytest.mark.parametrize( | ||||
], | ], | ||||
) | ) | ||||
def test_lister_cgit_date_parsing(date_str, expected_date): | def test_lister_cgit_date_parsing(date_str, expected_date): | ||||
"""test cgit lister date parsing""" | """test cgit lister date parsing""" | ||||
repository = {"url": "url", "last_updated_date": date_str} | repository = {"url": "url", "last_updated_date": date_str} | ||||
assert _parse_last_updated_date(repository) == expected_date | assert _parse_last_updated_date(repository) == expected_date | ||||
requests_mock_datadir_missing_url = requests_mock_datadir_factory( | |||||
ignore_urls=["https://git.tizen/cgit/adaptation/ap_samsung/audio-hal-e4x12/",] | |||||
) | |||||
def test_lister_cgit_get_origin_from_repo_failing( | |||||
requests_mock_datadir_missing_url, swh_scheduler | |||||
): | |||||
url = "https://git.tizen/cgit/" | |||||
lister_cgit = CGitLister(swh_scheduler, url=url) | |||||
stats = lister_cgit.run() | |||||
expected_nb_origins = 15 | |||||
assert stats == ListerStats(pages=3, origins=expected_nb_origins) |