diff --git a/swh/lister/cran/lister.py b/swh/lister/cran/lister.py index 20d6dd6..b8bd2c5 100644 --- a/swh/lister/cran/lister.py +++ b/swh/lister/cran/lister.py @@ -33,13 +33,11 @@ class CRANLister(SimpleLister): """ policy = kwargs.get('policy', 'oneshot') - package = kwargs.get('name') version = kwargs.get('version') assert origin_type == 'tar' return create_task_dict( - 'load-archive-files', - policy, package, origin_url, version, - retries_left=3, + 'load-cran', policy, + url=origin_url, version=version, retries_left=3 ) def safely_issue_request(self, identifier): diff --git a/swh/lister/cran/tests/conftest.py b/swh/lister/cran/tests/conftest.py index a4b2b26..cce18ab 100644 --- a/swh/lister/cran/tests/conftest.py +++ b/swh/lister/cran/tests/conftest.py @@ -1,6 +1,23 @@ -# Copyright (C) 2019 The Software Heritage developers +# 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 + from swh.lister.core.tests.conftest import * # noqa + + +@pytest.fixture +def lister_cran(swh_listers): + lister = swh_listers['cran'] + + # Add the load-deb-package in the scheduler backend + lister.scheduler.create_task_type({ + 'type': 'load-cran', + 'description': 'Load a CRAN package', + 'backend_name': 'swh.loader.package.cran.tasks.LoaderCRAN', + 'default_interval': '1 day', + }) + + return lister diff --git a/swh/lister/cran/tests/test_lister.py b/swh/lister/cran/tests/test_lister.py index b02da46..bc66d96 100644 --- a/swh/lister/cran/tests/test_lister.py +++ b/swh/lister/cran/tests/test_lister.py @@ -1,4 +1,4 @@ -# Copyright (C) 2019 The Software Heritage developers +# 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 @@ -28,8 +28,8 @@ def test_cran_compute_package_url_failure(): @patch('swh.lister.cran.lister.read_cran_data') -def test_cran_lister_cran(mock_cran, datadir, swh_listers): - lister = swh_listers['cran'] +def test_cran_lister_cran(mock_cran, datadir, lister_cran): + lister = lister_cran with open(path.join(datadir, 'list-r-packages.json')) as f: data = json.loads(f.read()) @@ -39,27 +39,19 @@ def test_cran_lister_cran(mock_cran, datadir, swh_listers): lister.run() - r = lister.scheduler.search_tasks(task_type='load-archive-files') + r = lister.scheduler.search_tasks(task_type='load-cran') assert len(r) == 6 for row in r: - assert row['type'] == 'load-archive-files' + assert row['type'] == 'load-cran' # arguments check args = row['arguments']['args'] - assert len(args) == 3 - # ['SeleMix', - # 'https://cran.r-project.org/src/contrib/SeleMix_1.0.1.tar.gz', - # '1.0.1'] - - package = args[0] - url = args[1] - version = args[2] - - assert url == compute_package_url( - {'Package': package, 'Version': version}) + assert len(args) == 0 # kwargs kwargs = row['arguments']['kwargs'] - assert kwargs == {} + assert len(kwargs) == 2 + assert set(kwargs.keys()) == {'url', 'version'} assert row['policy'] == 'oneshot' + assert row['retries_left'] == 3