Skip to content

Commit

Permalink
test
Browse files Browse the repository at this point in the history
  • Loading branch information
mohammad-alisafaee committed Mar 10, 2020
1 parent 9848b73 commit 9a5ed60
Showing 1 changed file with 89 additions and 4 deletions.
93 changes: 89 additions & 4 deletions tests/cli/test_datasets.py
Original file line number Diff line number Diff line change
Expand Up @@ -1547,6 +1547,41 @@ def test_add_external_file_multiple(runner, client, directory_tree):
assert 0 == result.exit_code


def test_external_overwrite(runner, client, directory_tree):
"""Check overwriting external and normal files."""
# Add external file
result = runner.invoke(
cli, [
'dataset', 'add', '--create', '--external', 'my-data',
directory_tree.strpath
]
)
assert 0 == result.exit_code

# Cannot add the same file
result = runner.invoke(
cli, ['dataset', 'add', 'my-data', directory_tree.strpath]
)
assert 1 == result.exit_code
assert 'File already exists in dataset.' in result.output

# Can add the same file with --force
result = runner.invoke(
cli, ['dataset', 'add', 'my-data', '--force', directory_tree.strpath]
)
assert 0 == result.exit_code
assert [] == list(client.renku_pointers_path.rglob('*'))

# Can add the same external file
result = runner.invoke(
cli, [
'dataset', 'add', '--external', 'my-data', '--force',
directory_tree.strpath
]
)
assert 0 == result.exit_code


def test_external_file_update(runner, client, directory_tree):
"""Check updating external files."""
result = runner.invoke(
Expand All @@ -1569,8 +1604,37 @@ def test_external_file_update(runner, client, directory_tree):
assert current_commit != previous_commit


def test_external_file_not_found(runner, client, directory_tree):
"""Check updating external files that are not available."""
def test_remove_external_file(runner, client, directory_tree):
"""Test removal of external files."""
result = runner.invoke(
cli, [
'dataset', 'add', '--create', '--external', 'my-data', '-d',
'files', directory_tree.strpath
]
)
assert 0 == result.exit_code

targets_before = {
str(p.resolve())
for p in client.renku_pointers_path.rglob('*')
}
path = str(Path('data') / 'my-data' / 'files' / 'file')

result = runner.invoke(cli, ['rm', str(path)])
assert 0 == result.exit_code

targets_after = {
str(p.resolve())
for p in client.renku_pointers_path.rglob('*')
}

removed = targets_before - targets_after
assert 1 == len(removed)
assert removed.pop().endswith('/file')


def test_unavailable_external_files(runner, client, directory_tree):
"""Check for external files that are not available."""
result = runner.invoke(
cli, [
'dataset', 'add', '-c', '--external', 'my-data', '-d', 'files',
Expand All @@ -1579,11 +1643,32 @@ def test_external_file_not_found(runner, client, directory_tree):
)
assert 0 == result.exit_code

directory_tree.join('file').remove()

path = Path('data') / 'my-data' / 'files' / 'file'
target = path.resolve()

directory_tree.join('file').remove()
assert not path.exists()

# Update won't work
result = runner.invoke(cli, ['dataset', 'update', '--external'])
assert 2 == result.exit_code
assert 'Target file not found' in result.output

# Renku doctor shows inaccessible files
result = runner.invoke(cli, ['doctor'])
assert 1 == result.exit_code
assert 'There are missing external files.' in result.output
assert str(path) in result.output
assert str(target) in result.output


def test_external_and_link(runner, client, directory_tree):
"""Test cannot use --link and --external together."""
result = runner.invoke(
cli, [
'dataset', 'add', '-c', '--external', '--link', 'my-data',
directory_tree.strpath
]
)
assert 2 == result.exit_code
assert 'Cannot use "--link" and "--external" together.' in result.output

0 comments on commit 9a5ed60

Please sign in to comment.