Change multiple storage classes error handling in cwl_runner
authorFuad Muhic <fmuhic@capeannenterprises.com>
Fri, 8 Jun 2018 09:05:22 +0000 (11:05 +0200)
committerFuad Muhic <fmuhic@capeannenterprises.com>
Fri, 8 Jun 2018 09:05:22 +0000 (11:05 +0200)
Arvados-DCO-1.1-Signed-off-by: Fuad Muhic <fmuhic@capeannenterprises.com>

sdk/cwl/arvados_cwl/__init__.py
sdk/cwl/tests/test_submit.py

index 31995ff8c2e371072000f0d0c045f05934b29bed..a946452b6540301068cfce4ca9e651093ddc8753 100644 (file)
@@ -786,7 +786,7 @@ def main(args, stdout, stderr, api_client=None, keep_client=None,
     arvargs.storage_classes = arvargs.storage_classes.strip().split(',')
     if len(arvargs.storage_classes) > 1:
         logger.error("Multiple storage classes are not supported currently.")
-        sys.exit(1)
+        return 1
 
     if install_sig_handlers:
         arv_cmd.install_signal_handlers()
index d6553aa4c28aed4a244886e6f54bb2cd65fa4cb4..1fae1cf91851a96d5f78da0f1ecb502e9400ffad 100644 (file)
@@ -335,14 +335,12 @@ class TestSubmit(unittest.TestCase):
 
     @stubs
     def test_error_when_multiple_storage_classes_specified(self, stubs):
-        capture_stdout = cStringIO.StringIO()
         storage_classes = "foo,bar"
-
-        with self.assertRaises(SystemExit):
-            arvados_cwl.main(
+        exited = arvados_cwl.main(
                 ["--debug", "--storage-classes", storage_classes,
                  "tests/wf/submit_wf.cwl", "tests/submit_test_job.json"],
-                capture_stdout, sys.stderr, api_client=stubs.api)
+                sys.stdin, sys.stderr, api_client=stubs.api)
+        self.assertEqual(exited, 1)
 
     @mock.patch("time.sleep")
     @stubs