Merge branch '15888-remove-py2-from-test' into master
[arvados.git] / sdk / cli / test / test_arv-keep-get.rb
index 0e578b8fb42d4aa2fd4cf46d55e6b113cda958a5..41e997b2bba7cac01c783504d49b246cfdfbe6fc 100644 (file)
@@ -1,3 +1,7 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+
 require 'minitest/autorun'
 require 'digest/md5'
 
@@ -9,7 +13,7 @@ class TestArvKeepGet < Minitest::Test
     end
     @@foo_manifest_locator ||= `echo -n foo | ./bin/arv-put --filename foo --no-progress -`.strip
     @@baz_locator ||= `echo -n baz | ./bin/arv-put --as-raw --no-progress -`.strip
-    @@multilevel_manifest_locator ||= `echo ./foo/bar #{@@baz_locator} 0:3:baz | ./bin/arv-put --as-raw --no-progress -`.strip
+    @@multilevel_manifest_locator ||= `echo -n baz | ./bin/arv-put --filename foo/bar/baz --no-progress -`.strip
   end
 
   def test_no_args
@@ -17,7 +21,17 @@ class TestArvKeepGet < Minitest::Test
       assert_arv_get false
     end
     assert_equal '', out
-    assert_match /^usage:/, err
+    assert_match(/^usage:/, err)
+  end
+
+  def test_get_version
+    out, err = capture_subprocess_io do
+      assert_arv_get '--version'
+    end
+    # python3 handles action='version' differently than python2
+    # https://dev.arvados.org/issues/15888#note-23
+    assert_empty(err, "STDERR not expected: '#{err}'")
+    assert_match(/[0-9]+\.[0-9]+\.[0-9]+/, out, "Version information incorrect: '#{out}'")
   end
 
   def test_help
@@ -26,7 +40,7 @@ class TestArvKeepGet < Minitest::Test
     end
     $stderr.write err
     assert_equal '', err
-    assert_match /^usage:/, out
+    assert_match(/^usage:/, out)
   end
 
   def test_file_to_dev_stdout
@@ -58,7 +72,7 @@ class TestArvKeepGet < Minitest::Test
     out, err = capture_subprocess_io do
       assert_arv_get false, @@foo_manifest_locator + '/foo', 'tmp/foo'
     end
-    assert_match /Local file tmp\/foo already exists/, err
+    assert_match(/Local file tmp\/foo already exists/, err)
     assert_equal '', out
     assert_equal 'baz', IO.read('tmp/foo')
   end
@@ -70,7 +84,7 @@ class TestArvKeepGet < Minitest::Test
     out, err = capture_subprocess_io do
       assert_arv_get false, @@foo_manifest_locator + '/', 'tmp/'
     end
-    assert_match /Local file tmp\/foo already exists/, err
+    assert_match(/Local file tmp\/foo already exists/, err)
     assert_equal '', out
     assert_equal 'baz', IO.read('tmp/foo')
   end
@@ -116,7 +130,7 @@ class TestArvKeepGet < Minitest::Test
       assert_arv_get false, @@foo_manifest_locator + '/', 'tmp/foo'
     end
     assert_equal '', out
-    assert_match /^usage:/, err
+    assert_match(/^usage:/, err)
   end
 
   def test_dir_to_empty_string
@@ -124,7 +138,7 @@ class TestArvKeepGet < Minitest::Test
       assert_arv_get false, @@foo_manifest_locator + '/', ''
     end
     assert_equal '', out
-    assert_match /^usage:/, err
+    assert_match(/^usage:/, err)
   end
 
   def test_nonexistent_block
@@ -132,7 +146,7 @@ class TestArvKeepGet < Minitest::Test
       assert_arv_get false, 'e796ab2294f3e48ec709ffa8d6daf58c'
     end
     assert_equal '', out
-    assert_match /Error:/, err
+    assert_match(/ERROR:/, err)
   end
 
   def test_nonexistent_manifest
@@ -140,7 +154,7 @@ class TestArvKeepGet < Minitest::Test
       assert_arv_get false, 'acbd18db4cc2f85cedef654fccc4a4d8/', 'tmp/'
     end
     assert_equal '', out
-    assert_match /Error:/, err
+    assert_match(/ERROR:/, err)
   end
 
   def test_manifest_root_to_dir
@@ -180,7 +194,7 @@ class TestArvKeepGet < Minitest::Test
     end
     assert_equal "#{Digest::MD5.hexdigest('foo')}  ./foo\n", err
     assert_equal '', out
-    assert_equal false, File.exists?('tmp/foo')
+    assert_equal false, File.exist?('tmp/foo')
   end
 
   def test_sha1_nowrite
@@ -190,7 +204,7 @@ class TestArvKeepGet < Minitest::Test
     end
     assert_equal "#{Digest::SHA1.hexdigest('foo')}  ./foo\n", err
     assert_equal '', out
-    assert_equal false, File.exists?('tmp/foo')
+    assert_equal false, File.exist?('tmp/foo')
   end
 
   def test_block_to_file