From: Peter Amstutz Date: Tue, 14 Jul 2020 17:19:14 +0000 (-0400) Subject: 16584: Don't consume exception in set_crunch_output X-Git-Tag: 2.1.0~160^2~1 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/150a601dbcaf6b999e54bd17d5152f15b626c7f3 16584: Don't consume exception in set_crunch_output Fix a couple of incorrect tests that were hidden by this. Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- diff --git a/sdk/cwl/arvados_cwl/executor.py b/sdk/cwl/arvados_cwl/executor.py index ec91eea6aa..e8d1347ddf 100644 --- a/sdk/cwl/arvados_cwl/executor.py +++ b/sdk/cwl/arvados_cwl/executor.py @@ -507,7 +507,7 @@ The 'jobs' API is no longer supported. }).execute(num_retries=self.num_retries) except Exception: logger.exception("Setting container output") - return + raise def apply_reqs(self, job_order_object, tool): if "https://w3id.org/cwl/cwl#requirements" in job_order_object: diff --git a/sdk/cwl/tests/test_submit.py b/sdk/cwl/tests/test_submit.py index 562664c698..0698db70ff 100644 --- a/sdk/cwl/tests/test_submit.py +++ b/sdk/cwl/tests/test_submit.py @@ -527,9 +527,12 @@ class TestSubmit(unittest.TestCase): @mock.patch("arvados_cwl.task_queue.TaskQueue") @mock.patch("arvados_cwl.arvworkflow.ArvadosWorkflow.job") - @mock.patch("arvados_cwl.executor.ArvCwlExecutor.make_output_collection", return_value = (None, None)) + @mock.patch("arvados_cwl.executor.ArvCwlExecutor.make_output_collection") @stubs def test_storage_classes_correctly_propagate_to_make_output_collection(self, stubs, make_output, job, tq): + final_output_c = arvados.collection.Collection() + make_output.return_value = ({},final_output_c) + def set_final_output(job_order, output_callback, runtimeContext): output_callback("zzzzz-4zz18-zzzzzzzzzzzzzzzz", "success") return [] @@ -538,16 +541,19 @@ class TestSubmit(unittest.TestCase): exited = arvados_cwl.main( ["--debug", "--local", "--storage-classes=foo", "tests/wf/submit_wf.cwl", "tests/submit_test_job.json"], - sys.stdin, sys.stderr, api_client=stubs.api, keep_client=stubs.keep_client) + stubs.capture_stdout, sys.stderr, api_client=stubs.api, keep_client=stubs.keep_client) make_output.assert_called_with(u'Output of submit_wf.cwl', ['foo'], '', 'zzzzz-4zz18-zzzzzzzzzzzzzzzz') self.assertEqual(exited, 0) @mock.patch("arvados_cwl.task_queue.TaskQueue") @mock.patch("arvados_cwl.arvworkflow.ArvadosWorkflow.job") - @mock.patch("arvados_cwl.executor.ArvCwlExecutor.make_output_collection", return_value = (None, None)) + @mock.patch("arvados_cwl.executor.ArvCwlExecutor.make_output_collection") @stubs def test_default_storage_classes_correctly_propagate_to_make_output_collection(self, stubs, make_output, job, tq): + final_output_c = arvados.collection.Collection() + make_output.return_value = ({},final_output_c) + def set_final_output(job_order, output_callback, runtimeContext): output_callback("zzzzz-4zz18-zzzzzzzzzzzzzzzz", "success") return [] @@ -556,7 +562,7 @@ class TestSubmit(unittest.TestCase): exited = arvados_cwl.main( ["--debug", "--local", "tests/wf/submit_wf.cwl", "tests/submit_test_job.json"], - sys.stdin, sys.stderr, api_client=stubs.api, keep_client=stubs.keep_client) + stubs.capture_stdout, sys.stderr, api_client=stubs.api, keep_client=stubs.keep_client) make_output.assert_called_with(u'Output of submit_wf.cwl', ['default'], '', 'zzzzz-4zz18-zzzzzzzzzzzzzzzz') self.assertEqual(exited, 0) @@ -1103,7 +1109,10 @@ class TestSubmit(unittest.TestCase): "outputs": [ { "id": "#secret_job.cwl/out", - "type": "stdout" + "type": "File", + "outputBinding": { + "glob": "hashed_example.txt" + } } ], "stdout": "hashed_example.txt", @@ -1312,7 +1321,7 @@ class TestSubmit(unittest.TestCase): stubs.capture_stdout, capture_stderr, api_client=stubs.api, keep_client=stubs.keep_client) self.assertEqual(exited, 1) - self.assertRegexpMatches( + self.assertRegex( re.sub(r'[ \n]+', ' ', capture_stderr.getvalue()), r"Expected collection uuid zzzzz-4zz18-zzzzzzzzzzzzzzz to be 99999999999999999999999999999998\+99 but API server reported 99999999999999999999999999999997\+99") finally: @@ -1335,7 +1344,7 @@ class TestSubmit(unittest.TestCase): try: self.assertEqual(exited, 1) - self.assertRegexpMatches( + self.assertRegex( capture_stderr.getvalue(), r"Collection uuid zzzzz-4zz18-zzzzzzzzzzzzzzz not found") finally: