diff --git a/swh/lister/cran/lister.py b/swh/lister/cran/lister.py --- a/swh/lister/cran/lister.py +++ b/swh/lister/cran/lister.py @@ -5,6 +5,7 @@ import json import logging import pkg_resources +from collections import defaultdict from swh.lister.cran.models import CRANModel @@ -17,6 +18,7 @@ MODEL = CRANModel LISTER_NAME = 'cran' instance = 'cran' + descriptions = defaultdict(dict) def task_dict(self, origin_type, origin_url, **kwargs): """Return task format dict @@ -26,7 +28,8 @@ """ return create_task_dict( 'load-%s' % origin_type, 'recurring', - kwargs.get('name'), origin_url, kwargs.get('version')) + kwargs.get('name'), origin_url, kwargs.get('version'), + project_metadata=self.descriptions[kwargs.get('name')]) def r_script_request(self): """Runs R script which uses inbuilt API to return a json @@ -65,6 +68,7 @@ """Transform from repository representation to model """ + self.descriptions[repo["Package"]] = repo['Description'] project_url = 'https://cran.r-project.org/src/contrib' \ '/%(Package)s_%(Version)s.tar.gz' % repo return { diff --git a/swh/lister/cran/tests/test_lister.py b/swh/lister/cran/tests/test_lister.py new file mode 100644 --- /dev/null +++ b/swh/lister/cran/tests/test_lister.py @@ -0,0 +1,13 @@ +from unittest.mock import patch +from swh.lister.cran.lister import CRANLister + + +def test_task_dict(): + lister = CRANLister() + lister.descriptions['test_pack'] = 'Test Description' + with patch('swh.lister.cran.lister.create_task_dict') as mock_create_tasks: + lister.task_dict(origin_type='cran', origin_url='https://abc', + name='test_pack') + mock_create_tasks.assert_called_once_with( + 'load-cran', 'recurring', 'test_pack', 'https://abc', None, + project_metadata='Test Description')