Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions renku/core/commands/dataset.py
Original file line number Diff line number Diff line change
Expand Up @@ -543,10 +543,10 @@ def import_dataset(
'Unable to fetch metadata due to {1}'.format(uri, e)
))

except LookupError:
except LookupError as e:
raise ParameterError(
('Could not process {0}.\n'
'URI not found.'.format(uri))
'Reason: {1}'.format(uri, str(e)))
)

if files:
Expand Down
8 changes: 4 additions & 4 deletions renku/core/commands/providers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,15 @@ def from_uri(uri):

if is_doi_ and provider is None:
return None, (
warning + 'Provider {} not found. '.format(
warning + 'Reason: provider {} not found'.format(
uri.split('/')[1].split('.')[0] # Get DOI provider name.
) + 'Currently supporting following providers: {}'.
) + '\nHint: Supported providers are: {}'.
format(supported_providers)
)
elif provider is None:
return None, (
warning + 'Provider not found for {}. '.format(uri) +
'Currently supporting following providers: {}'.
warning + 'Reason: provider not found for {} '.format(uri) +
'\nHint: Supported providers are: {}'.
format(supported_providers)
)
else:
Expand Down
6 changes: 4 additions & 2 deletions renku/core/commands/providers/dataverse.py
Original file line number Diff line number Diff line change
Expand Up @@ -214,8 +214,10 @@ def get_jsonld(self):

def get_files(self):
"""Get Dataverse files metadata as ``DataverseFileSerializer``."""
if len(self.files) == 0:
raise LookupError('no files have been found')
if not self.files:
raise LookupError(
'no files have been found - deposit is empty or protected'
)

return [DataverseFileSerializer(**file_) for file_ in self.files]

Expand Down
8 changes: 5 additions & 3 deletions renku/core/commands/providers/zenodo.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,8 +236,10 @@ def get_jsonld(self):

def get_files(self):
"""Get Zenodo files metadata as ``ZenodoFile``."""
if len(self.files) == 0:
raise LookupError('no files have been found')
if not self.files:
raise LookupError(
'no files have been found - deposit is empty or protected'
)

return [ZenodoFileSerializer(**file_) for file_ in self.files]

Expand Down Expand Up @@ -272,7 +274,7 @@ def as_dataset(self, client):

@attr.s
class ZenodoDeposition:
"""Zenodo record for deposit."""
"""Zenodo record for a deposit."""

exporter = attr.ib()
id = attr.ib(default=None)
Expand Down
37 changes: 12 additions & 25 deletions tests/cli/test_integration_datasets.py
Original file line number Diff line number Diff line change
Expand Up @@ -165,18 +165,22 @@ def test_dataset_import_real_doi_warnings(runner, project, sleep_after):


@pytest.mark.parametrize(
'doi', [('10.5281/zenodo.5979642342', 'Zenodo'),
('10.7910/DVN/S8MSVFXXXX', 'DVN')]
'doi,err', [('10.5281/zenodo.5979642342', 'record not found'),
('10.7910/DVN/S8MSVFXXXX', 'provider DVN not found'),
('10.5281/zenodo.1494915', 'no files have been found'),
('https://zenodo.org/record/2621201248', 'record not found'),
((
'https://dataverse.harvard.edu/dataset.xhtml'
'?persistentId=doi:10.7910/DVN/F4NUMRXXXX'
), 'record not found')]
)
@pytest.mark.integration
@flaky(max_runs=10, min_passes=1)
def test_dataset_import_fake_doi(runner, project, doi):
"""Test error raising for non-existing DOI."""
result = runner.invoke(cli, ['dataset', 'import', doi[0]], input='y')

def test_dataset_import_expected_err(runner, project, doi, err):
"""Test error raising for invalid DOI."""
result = runner.invoke(cli, ['dataset', 'import', doi], input='y')
assert 2 == result.exit_code
assert 'URI not found.' in result.output \
or 'Provider {} not found'.format(doi[1]) in result.output
assert err in result.output


@pytest.mark.parametrize(
Expand All @@ -198,23 +202,6 @@ def test_dataset_import_real_http(runner, project, url, sleep_after):
assert 'OK' in result.output


@pytest.mark.parametrize(
'url', [
'https://zenodo.org/record/2621201248',
'https://dataverse.harvard.edu/dataset.xhtml' +
'?persistentId=doi:10.7910/DVN/F4NUMRXXXX'
]
)
@pytest.mark.integration
@flaky(max_runs=10, min_passes=1)
def test_dataset_import_fake_http(runner, project, url):
"""Test dataset import through HTTPS."""
result = runner.invoke(cli, ['dataset', 'import', url], input='y')

assert 2 == result.exit_code
assert 'URI not found.' in result.output


@pytest.mark.integration
@flaky(max_runs=10, min_passes=1)
def test_dataset_import_and_extract(runner, project, client, sleep_after):
Expand Down