py3 argparse differs from py2 for action='version'
[arvados.git] / sdk / cli / test / test_arv-keep-get.rb
index b1f6bdf857a0fcda9b4f44d4db4778863093067d..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,15 +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
-    assert_empty(out, "STDOUT not expected: '#{out}'")
-    assert_match(/[0-9]+\.[0-9]+\.[0-9]+/, err, "Version information incorrect: '#{err}'")
+    # 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
@@ -34,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
@@ -66,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
@@ -78,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
@@ -124,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
@@ -132,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
@@ -140,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
@@ -148,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