From f63b8326c5d2fbc9b29e9ff517618cc000c9c1d4 Mon Sep 17 00:00:00 2001 From: David Douard Date: Tue, 8 Jan 2019 10:17:45 +0100 Subject: [PATCH] Add tests for npm tasks --- swh/lister/core/tests/conftest.py | 1 + swh/lister/npm/tests/conftest.py | 1 + swh/lister/npm/tests/test_tasks.py | 55 ++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 swh/lister/npm/tests/conftest.py create mode 100644 swh/lister/npm/tests/test_tasks.py diff --git a/swh/lister/core/tests/conftest.py b/swh/lister/core/tests/conftest.py index ce1039e..5d75455 100644 --- a/swh/lister/core/tests/conftest.py +++ b/swh/lister/core/tests/conftest.py @@ -13,6 +13,7 @@ def celery_includes(): 'swh.lister.debian.tasks', 'swh.lister.github.tasks', 'swh.lister.gitlab.tasks', + 'swh.lister.npm.tasks', ] diff --git a/swh/lister/npm/tests/conftest.py b/swh/lister/npm/tests/conftest.py new file mode 100644 index 0000000..507fef9 --- /dev/null +++ b/swh/lister/npm/tests/conftest.py @@ -0,0 +1 @@ +from swh.lister.core.tests.conftest import * # noqa diff --git a/swh/lister/npm/tests/test_tasks.py b/swh/lister/npm/tests/test_tasks.py new file mode 100644 index 0000000..9e9deb6 --- /dev/null +++ b/swh/lister/npm/tests/test_tasks.py @@ -0,0 +1,55 @@ +from contextlib import contextmanager +from unittest.mock import patch + + +@contextmanager +def mock_save(lister): + yield + + +def test_ping(swh_app, celery_session_worker): + res = swh_app.send_task( + 'swh.lister.npm.tasks.ping') + assert res + res.wait() + assert res.successful() + assert res.result == 'OK' + + +@patch('swh.lister.npm.tasks.save_registry_state') +@patch('swh.lister.npm.tasks.NpmLister') +def test_lister(lister, save, swh_app, celery_session_worker): + # setup the mocked NpmLister + lister.return_value = lister + lister.run.return_value = None + save.side_effect = mock_save + + res = swh_app.send_task('swh.lister.npm.tasks.NpmListerTask') + assert res + res.wait() + assert res.successful() + + lister.assert_called_once_with() + lister.run.assert_called_once_with() + + +@patch('swh.lister.npm.tasks.save_registry_state') +@patch('swh.lister.npm.tasks.get_last_update_seq') +@patch('swh.lister.npm.tasks.NpmIncrementalLister') +def test_incremental(lister, seq, save, swh_app, celery_session_worker): + # setup the mocked NpmLister + lister.return_value = lister + lister.run.return_value = None + lister.request_headers.return_value = [] + seq.return_value = 42 + save.side_effect = mock_save + + res = swh_app.send_task( + 'swh.lister.npm.tasks.NpmIncrementalListerTask') + assert res + res.wait() + assert res.successful() + + lister.assert_called_once_with() + seq.assert_called_once_with(lister) + lister.run.assert_called_once_with(min_bound=42)