X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/29d68a00a01386059813553dcba1f41c03a5fb46..5716ec8e19573bd4cbae5c53a0d08e6757d5507d:/sdk/cli/test/test_arv-get.rb diff --git a/sdk/cli/test/test_arv-get.rb b/sdk/cli/test/test_arv-get.rb index 660114b6d4..3d378e740c 100644 --- a/sdk/cli/test/test_arv-get.rb +++ b/sdk/cli/test/test_arv-get.rb @@ -42,10 +42,7 @@ class TestArvGet < Minitest::Test end def test_file_to_file - begin - File.unlink('tmp/foo') - rescue Errno::ENOENT - end + remove_tmp_foo out, err = capture_subprocess_io do assert_arv_get @@foo_manifest_locator + '/foo', 'tmp/foo' end @@ -54,11 +51,100 @@ class TestArvGet < Minitest::Test assert_equal 'foo', IO.read('tmp/foo') end - def test_manifest_root_to_dir - begin - File.unlink('tmp/foo') - rescue Errno::ENOENT + def test_file_to_file_no_overwrite_file + File.open './tmp/foo', 'wb' do |f| + f.write 'baz' + end + out, err = capture_subprocess_io do + assert_arv_get false, @@foo_manifest_locator + '/foo', 'tmp/foo' + end + assert_match /^ERROR:/, err + assert_equal '', out + assert_equal 'baz', IO.read('tmp/foo') + end + + def test_file_to_file_no_overwrite_file_in_dir + File.open './tmp/foo', 'wb' do |f| + f.write 'baz' + end + out, err = capture_subprocess_io do + assert_arv_get false, @@foo_manifest_locator + '/', 'tmp/' + end + assert_match /^ERROR:/, err + assert_equal '', out + assert_equal 'baz', IO.read('tmp/foo') + end + + def test_file_to_file_force_overwrite + File.open './tmp/foo', 'wb' do |f| + f.write 'baz' + end + assert_equal 'baz', IO.read('tmp/foo') + out, err = capture_subprocess_io do + assert_arv_get '-f', @@foo_manifest_locator + '/', 'tmp/' end + assert_match '', err + assert_equal '', out + assert_equal 'foo', IO.read('tmp/foo') + end + + def test_file_to_file_skip_existing + File.open './tmp/foo', 'wb' do |f| + f.write 'baz' + end + assert_equal 'baz', IO.read('tmp/foo') + out, err = capture_subprocess_io do + assert_arv_get '--skip-existing', @@foo_manifest_locator + '/', 'tmp/' + end + assert_match '', err + assert_equal '', out + assert_equal 'baz', IO.read('tmp/foo') + end + + def test_file_to_dir + remove_tmp_foo + out, err = capture_subprocess_io do + assert_arv_get @@foo_manifest_locator + '/foo', 'tmp/' + end + assert_equal '', err + assert_equal '', out + assert_equal 'foo', IO.read('tmp/foo') + end + + def test_dir_to_file + out, err = capture_subprocess_io do + assert_arv_get false, @@foo_manifest_locator + '/', 'tmp/foo' + end + assert_equal '', out + assert_match /^usage:/, err + end + + def test_dir_to_empty_string + out, err = capture_subprocess_io do + assert_arv_get false, @@foo_manifest_locator + '/', '' + end + assert_equal '', out + assert_match /^usage:/, err + end + + def test_nonexistent_block + out, err = capture_subprocess_io do + assert_arv_get false, 'f1554a91e925d6213ce7c3103c5110c6' + end + assert_equal '', out + assert_match /^ERROR:/, err + end + + def test_nonexistent_manifest + out, err = capture_subprocess_io do + assert_arv_get false, 'f1554a91e925d6213ce7c3103c5110c6/', 'tmp/' + end + assert_equal '', out + assert_match /^ERROR:/, err + end + + def test_manifest_root_to_dir + remove_tmp_foo out, err = capture_subprocess_io do assert_arv_get '-r', @@foo_manifest_locator + '/', 'tmp/' end @@ -67,11 +153,18 @@ class TestArvGet < Minitest::Test assert_equal 'foo', IO.read('tmp/foo') end - def test_display_md5sum - begin - File.unlink('tmp/foo') - rescue Errno::ENOENT + def test_manifest_root_to_dir_noslash + remove_tmp_foo + out, err = capture_subprocess_io do + assert_arv_get '-r', @@foo_manifest_locator + '/', 'tmp' end + assert_equal '', err + assert_equal '', out + assert_equal 'foo', IO.read('tmp/foo') + end + + def test_display_md5sum + remove_tmp_foo out, err = capture_subprocess_io do assert_arv_get '-r', '--md5sum', @@foo_manifest_locator + '/', 'tmp/' end @@ -81,10 +174,7 @@ class TestArvGet < Minitest::Test end def test_md5sum_nowrite - begin - File.unlink('tmp/foo') - rescue Errno::ENOENT - end + remove_tmp_foo out, err = capture_subprocess_io do assert_arv_get '-n', '--md5sum', @@foo_manifest_locator + '/', 'tmp/' end @@ -94,6 +184,7 @@ class TestArvGet < Minitest::Test end def test_sha1_nowrite + remove_tmp_foo out, err = capture_subprocess_io do assert_arv_get '-n', '-r', '--hash', 'sha1', @@foo_manifest_locator+'/', 'tmp/' end @@ -103,10 +194,7 @@ class TestArvGet < Minitest::Test end def test_block_to_file - begin - File.unlink('tmp/foo') - rescue Errno::ENOENT - end + remove_tmp_foo out, err = capture_subprocess_io do assert_arv_get @@foo_manifest_locator, 'tmp/foo' end @@ -155,4 +243,11 @@ class TestArvGet < Minitest::Test def foo_manifest ". #{Digest::MD5.hexdigest('foo')}+3 0:3:foo\n" end + + def remove_tmp_foo + begin + File.unlink('tmp/foo') + rescue Errno::ENOENT + end + end end