diff --git a/swh/lister/gnu/tests/conftest.py b/swh/lister/gnu/tests/conftest.py new file mode 100644 index 0000000..23cd215 --- /dev/null +++ b/swh/lister/gnu/tests/conftest.py @@ -0,0 +1,26 @@ +# Copyright (C) 2019-2020 The Software Heritage developers +# See the AUTHORS file at the top-level directory of this distribution +# License: GNU General Public License version 3, or any later version +# See top-level LICENSE file for more information + +import pytest + + +@pytest.fixture +def lister_under_test(): + return "gnu" + + +@pytest.fixture +def lister_gnu(swh_lister): + for task_type in [ + { + "type": "load-archive-files", + "description": "Load archive repository", + "backend_name": "swh.loader.packages.tasks.LoadArchive", + "default_interval": "1 day", + }, + ]: + swh_lister.scheduler.create_task_type(task_type) + + return swh_lister diff --git a/swh/lister/gnu/tests/test_lister.py b/swh/lister/gnu/tests/test_lister.py index 8dedfa9..e17365a 100644 --- a/swh/lister/gnu/tests/test_lister.py +++ b/swh/lister/gnu/tests/test_lister.py @@ -1,55 +1,47 @@ # Copyright (C) 2019-2020 The Software Heritage developers # See the AUTHORS file at the top-level directory of this distribution # License: GNU General Public License version 3, or any later version # See top-level LICENSE file for more information import logging -import pytest - logger = logging.getLogger(__name__) -@pytest.fixture -def lister_under_test(): - return "gnu" - - -@pytest.fixture -def test_gnu_lister(swh_lister, requests_mock_datadir): - swh_lister.run() +def test_gnu_lister(lister_gnu, requests_mock_datadir): + lister_gnu.run() - r = swh_lister.scheduler.search_tasks(task_type="load-archive-files") + r = lister_gnu.scheduler.search_tasks(task_type="load-archive-files") assert len(r) == 383 for row in r: assert row["type"] == "load-archive-files" # arguments check args = row["arguments"]["args"] assert len(args) == 0 # kwargs kwargs = row["arguments"]["kwargs"] assert set(kwargs.keys()) == {"url", "artifacts"} url = kwargs["url"] assert url.startswith("https://ftp.gnu.org") url_suffix = url.split("https://ftp.gnu.org")[1] assert "gnu" in url_suffix or "old-gnu" in url_suffix artifacts = kwargs["artifacts"] # check the artifact's structure artifact = artifacts[0] assert set(artifact.keys()) == {"url", "length", "time", "filename", "version"} for artifact in artifacts: logger.debug(artifact) # 'time' is an isoformat string now for key in ["url", "time", "filename", "version"]: assert isinstance(artifact[key], str) assert isinstance(artifact["length"], int) assert row["policy"] == "oneshot" assert row["priority"] is None assert row["retries_left"] == 3