diff --git a/swh/deposit/loader/tasks.py b/swh/deposit/loader/tasks.py index 770df259..49bd97fb 100644 --- a/swh/deposit/loader/tasks.py +++ b/swh/deposit/loader/tasks.py @@ -1,50 +1,51 @@ # Copyright (C) 2015-2018 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 from swh.scheduler.task import Task -from swh.deposit.loader import loader, checker +from swh.deposit.loader.loader import DepositLoader +from swh.deposit.loader.checker import DepositChecker class LoadDepositArchiveTsk(Task): """Deposit archive loading task described by the following steps: 1. Retrieve tarball from deposit's private api and store locally in a temporary directory 2. Trigger the loading 3. clean up the temporary directory 4. Update the deposit's status according to result using the deposit's private update status api """ task_queue = 'swh_loader_deposit' def run_task(self, *, archive_url, deposit_meta_url, deposit_update_url): """Import a deposit tarball into swh. Args: see :func:`DepositLoader.load`. """ - _loader = loader.DepositLoader() + _loader = DepositLoader() _loader.log = self.log return _loader.load(archive_url=archive_url, deposit_meta_url=deposit_meta_url, deposit_update_url=deposit_update_url) class ChecksDepositTsk(Task): """Deposit checks task. """ task_queue = 'swh_checker_deposit' def run_task(self, deposit_check_url): """Check a deposit's status Args: see :func:`DepositChecker.check`. """ - _checker = checker.DepositChecker() + _checker = DepositChecker() _checker.log = self.log return _checker.check(deposit_check_url) diff --git a/swh/deposit/tests/loader/test_tasks.py b/swh/deposit/tests/loader/test_tasks.py new file mode 100644 index 00000000..b9b2c2a4 --- /dev/null +++ b/swh/deposit/tests/loader/test_tasks.py @@ -0,0 +1,50 @@ +# Copyright (C) 2018 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 unittest +from unittest.mock import patch + +from swh.deposit.loader.tasks import LoadDepositArchiveTsk, ChecksDepositTsk + + +class TestTasks(unittest.TestCase): + def test_check_task_name(self): + task = LoadDepositArchiveTsk() + self.assertEqual(task.task_queue, 'swh_loader_deposit') + + @patch('swh.deposit.loader.loader.DepositLoader.load') + def test_task(self, mock_loader): + mock_loader.return_value = {'status': 'eventful'} + task = LoadDepositArchiveTsk() + + # given + actual_result = task.run_task( + archive_url='archive_url', + deposit_meta_url='deposit_meta_url', + deposit_update_url='deposit_update_url') + + self.assertEqual(actual_result, {'status': 'eventful'}) + + mock_loader.assert_called_once_with( + archive_url='archive_url', + deposit_meta_url='deposit_meta_url', + deposit_update_url='deposit_update_url') + + +class TestTasks2(unittest.TestCase): + def test_check_task_name(self): + task = ChecksDepositTsk() + self.assertEqual(task.task_queue, 'swh_checker_deposit') + + @patch('swh.deposit.loader.checker.DepositChecker.check') + def test_task(self, mock_checker): + mock_checker.return_value = {'status': 'uneventful'} + task = ChecksDepositTsk() + + # given + actual_result = task.run_task('check_deposit_url') + self.assertEqual(actual_result, {'status': 'uneventful'}) + + mock_checker.assert_called_once_with('check_deposit_url')