Skip to content
Snippets Groups Projects
Commit 5ea9d5ed authored by Archit Agrawal's avatar Archit Agrawal
Browse files

swh.lister.cran: Add description in task_dict

Add description in task_dict method because
the only metadata that can be found for a
package at CRAN is  its decsription.  That can
only br achived from the build in API in R,
which ister is already using. Hence instead of
getting metadata in loader, it is passed
by lister.
parent 52b1de87
No related branches found
No related tags found
No related merge requests found
......@@ -5,6 +5,7 @@ import subprocess
import json
import logging
import pkg_resources
from collections import defaultdict
from swh.lister.cran.models import CRANModel
......@@ -17,6 +18,7 @@ class CRANLister(SimpleLister):
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 @@ class CRANLister(SimpleLister):
"""
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 @@ class CRANLister(SimpleLister):
"""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 {
......
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')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment