Skip to content

Commit dd728db

Browse files
committed
fix(cli): fail when removing non existing dataset
1 parent 6206e62 commit dd728db

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

renku/cli/dataset.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -323,7 +323,23 @@ def unlink(client, name, include, exclude, yes):
323323
def remove(client, names):
324324
"""Delete a dataset."""
325325
from renku.models.refs import LinkReference
326-
datasets = {client.dataset_path(name) for name in names}
326+
datasets = {name: client.dataset_path(name) for name in names}
327+
328+
if not datasets:
329+
raise click.BadParameter(
330+
'use dataset name or identifier', param_hint='names'
331+
)
332+
333+
unknown = [
334+
name
335+
for name, path in datasets.items() if not path or not path.exists()
336+
]
337+
if unknown:
338+
raise click.BadParameter(
339+
'unknown datasets ' + ', '.join(unknown), param_hint='names'
340+
)
341+
342+
datasets = set(datasets.values())
327343

328344
with progressbar(
329345
datasets,

tests/cli/test_datasets.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -586,6 +586,13 @@ def test_dataset_unlink_file(tmpdir, runner, client):
586586

587587
def test_dataset_rm(tmpdir, runner, project, client):
588588
"""Test removal of a dataset."""
589+
# try to delete non existing dataset
590+
result = runner.invoke(cli.cli, ['dataset', 'rm'])
591+
assert 2 == result.exit_code
592+
593+
result = runner.invoke(cli.cli, ['dataset', 'rm', 'does-not-exist'])
594+
assert 2 == result.exit_code
595+
589596
# create a dataset
590597
result = runner.invoke(cli.cli, ['dataset', 'create', 'my-dataset'])
591598
assert 0 == result.exit_code

0 commit comments

Comments
 (0)