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 @@ -108,11 +108,12 @@ logger.debug('repo: %s', repo) origin_url, artifact_url = compute_origin_urls(repo) package = repo['Package'] + version = repo['Version'] return { - 'uid': package, + 'uid': f'{package}-{version}', 'name': package, 'full_name': repo['Title'], - 'version': repo['Version'], + 'version': version, 'html_url': artifact_url, 'origin_url': origin_url, 'origin_type': 'tar', diff --git a/swh/lister/cran/tests/test_lister.py b/swh/lister/cran/tests/test_lister.py --- a/swh/lister/cran/tests/test_lister.py +++ b/swh/lister/cran/tests/test_lister.py @@ -55,6 +55,7 @@ kwargs = row['arguments']['kwargs'] assert len(kwargs) == 3 assert set(kwargs.keys()) == {'url', 'version', 'artifacts'} + origin_url = kwargs['url'] artifacts = kwargs['artifacts'] assert len(artifacts) == 1 @@ -63,3 +64,9 @@ assert row['policy'] == 'oneshot' assert row['retries_left'] == 3 + + record = lister.db_session \ + .query(lister.MODEL) \ + .filter(origin_url == origin_url).first() + assert record + assert record.uid == f'{record.name}-{record.version}'