10812: Add tests
authorPeter Amstutz <peter.amstutz@curoverse.com>
Fri, 20 Jan 2017 17:25:51 +0000 (12:25 -0500)
committerPeter Amstutz <peter.amstutz@curoverse.com>
Fri, 20 Jan 2017 17:25:51 +0000 (12:25 -0500)
sdk/cwl/arvados_cwl/__init__.py
sdk/cwl/tests/test_submit.py

index 5d83300b418e56ea998ad0eba3a4169ca9fdefa7..b766cec30c4b7c1258e8277016c48dac6dd7288f 100644 (file)
@@ -388,7 +388,7 @@ class ArvCwlRunner(object):
                                                 self.output_name,
                                                 self.output_tags,
                                                 submit_runner_ram=kwargs.get("submit_runner_ram"),
-                                                name=kwargs["name"],
+                                                name=kwargs.get("name"),
                                                 on_error=kwargs.get("on_error"),
                                                 submit_runner_image=kwargs.get("submit_runner_image"))
             elif self.work_api == "jobs":
@@ -396,7 +396,7 @@ class ArvCwlRunner(object):
                                       self.output_name,
                                       self.output_tags,
                                       submit_runner_ram=kwargs.get("submit_runner_ram"),
-                                      name=kwargs["name"],
+                                      name=kwargs.get("name"),
                                       on_error=kwargs.get("on_error"),
                                       submit_runner_image=kwargs.get("submit_runner_image"))
 
index 13cc4831490e6165678b11ca519ed16772cb91a9..042272efff63dc4a522c5b4835a6934020fcc435 100644 (file)
@@ -752,6 +752,47 @@ class TestSubmit(unittest.TestCase):
                          stubs.expect_container_request_uuid + '\n')
 
 
+    @stubs
+    def test_submit_job_runner_image(self, stubs):
+        capture_stdout = cStringIO.StringIO()
+        try:
+            exited = arvados_cwl.main(
+                ["--submit", "--no-wait", "--api=jobs", "--debug", "--submit-runner-image=arvados/jobs:123",
+                 "tests/wf/submit_wf.cwl", "tests/submit_test_job.json"],
+                capture_stdout, sys.stderr, api_client=stubs.api, keep_client=stubs.keep_client)
+            self.assertEqual(exited, 0)
+        except:
+            logging.exception("")
+
+        stubs.expect_pipeline_instance["components"]["cwl-runner"]["runtime_constraints"]["docker_image"] = "arvados/jobs:123"
+
+        expect_pipeline = copy.deepcopy(stubs.expect_pipeline_instance)
+        stubs.api.pipeline_instances().create.assert_called_with(
+            body=JsonDiffMatcher(expect_pipeline))
+        self.assertEqual(capture_stdout.getvalue(),
+                         stubs.expect_pipeline_uuid + '\n')
+
+    @stubs
+    def test_submit_container_runner_image(self, stubs):
+        capture_stdout = cStringIO.StringIO()
+        try:
+            exited = arvados_cwl.main(
+                ["--submit", "--no-wait", "--api=containers", "--debug", "--submit-runner-image=arvados/jobs:123",
+                 "tests/wf/submit_wf.cwl", "tests/submit_test_job.json"],
+                capture_stdout, sys.stderr, api_client=stubs.api, keep_client=stubs.keep_client)
+            self.assertEqual(exited, 0)
+        except:
+            logging.exception("")
+
+        stubs.expect_container_spec["container_image"] = "arvados/jobs:123"
+
+        expect_container = copy.deepcopy(stubs.expect_container_spec)
+        stubs.api.container_requests().create.assert_called_with(
+            body=JsonDiffMatcher(expect_container))
+        self.assertEqual(capture_stdout.getvalue(),
+                         stubs.expect_container_request_uuid + '\n')
+
+
     @mock.patch("arvados.commands.keepdocker.find_one_image_hash")
     @mock.patch("cwltool.docker.get_image")
     @mock.patch("arvados.api")