diff --git a/swh/loader/git/tasks.py b/swh/loader/git/tasks.py index a47fd1b..22216c1 100644 --- a/swh/loader/git/tasks.py +++ b/swh/loader/git/tasks.py @@ -1,46 +1,52 @@ # Copyright (C) 2015-2019 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 dateutil.parser +from typing import Any, Dict, Optional + from celery import shared_task from swh.loader.git.from_disk import GitLoaderFromDisk, GitLoaderFromArchive from swh.loader.git.loader import GitLoader @shared_task(name=__name__ + '.UpdateGitRepository') -def load_git(repo_url, base_url=None): - """Import a git repository from a remote location""" - loader = GitLoader(repo_url, base_url=base_url) +def load_git(url: str, base_url: Optional[str] = None) -> Dict[str, Any]: + """Import a git repository from a remote location + + """ + loader = GitLoader(url, base_url=base_url) return loader.load() @shared_task(name=__name__ + '.LoadDiskGitRepository') -def load_git_from_dir(origin_url, directory, date): +def load_git_from_dir(url: str, directory: str, date: str) -> Dict[str, Any]: """Import a git repository from a local repository Import a git repository, cloned in `directory` from `origin_url` at `date`. """ visit_date = dateutil.parser.parse(date) loader = GitLoaderFromDisk( - origin_url, directory=directory, visit_date=visit_date) + url, directory=directory, visit_date=visit_date) return loader.load() @shared_task(name=__name__ + '.UncompressAndLoadDiskGitRepository') -def load_git_from_zip(origin_url, archive_path, date): +def load_git_from_zip( + url: str, archive_path: str, date: str) -> Dict[str, Any]: """Import a git repository from a zip archive 1. Uncompress an archive repository in a local and temporary folder 2. Load it through the git disk loader 3. Clean up the temporary folder + """ visit_date = dateutil.parser.parse(date) loader = GitLoaderFromArchive( - origin_url, archive_path=archive_path, visit_date=visit_date) + url, archive_path=archive_path, visit_date=visit_date) return loader.load() diff --git a/swh/loader/git/tests/test_tasks.py b/swh/loader/git/tests/test_tasks.py index bc79058..8019393 100644 --- a/swh/loader/git/tests/test_tasks.py +++ b/swh/loader/git/tests/test_tasks.py @@ -1,52 +1,62 @@ # Copyright (C) 2018-2019 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 def test_git_loader(mocker, swh_app, celery_session_worker): mock_loader = mocker.patch('swh.loader.git.loader.GitLoader.load') mock_loader.return_value = {'status': 'eventful'} res = swh_app.send_task( 'swh.loader.git.tasks.UpdateGitRepository', - ('origin_url',)) + kwargs={ + 'url': 'origin_url', + }) assert res res.wait() assert res.successful() assert res.result == {'status': 'eventful'} mock_loader.assert_called_once_with() def test_git_loader_from_disk(mocker, swh_app, celery_session_worker): mock_loader = mocker.patch( 'swh.loader.git.from_disk.GitLoaderFromDisk.load') mock_loader.return_value = {'status': 'uneventful'} res = swh_app.send_task( 'swh.loader.git.tasks.LoadDiskGitRepository', - ('origin_url2', '/some/repo', '2018-12-10 00:00')) + kwargs={ + 'url': 'origin_url2', + 'directory': '/some/repo', + 'date': '2018-12-10 00:00', + }) assert res res.wait() assert res.successful() assert res.result == {'status': 'uneventful'} mock_loader.assert_called_once_with() def test_git_loader_from_archive(mocker, swh_app, celery_session_worker): mock_loader = mocker.patch( 'swh.loader.git.from_disk.GitLoaderFromArchive.load') mock_loader.return_value = {'status': 'failed'} res = swh_app.send_task( 'swh.loader.git.tasks.UncompressAndLoadDiskGitRepository', - ('origin_url3', '/some/repo', '2017-01-10 00:00')) + kwargs={ + 'url': 'origin_url3', + 'archive_path': '/some/repo', + 'date': '2017-01-10 00:00', + }) assert res res.wait() assert res.successful() assert res.result == {'status': 'failed'} mock_loader.assert_called_once_with()