Merge branch '9684-workflows'
[arvados.git] / sdk / cwl / tests / test_container.py
index df7d1424db228e86abc2e169fca1dff5b91ae90f..e06003769b643d0c1d127cdc12cffd5af119ddd3 100644 (file)
@@ -3,6 +3,7 @@ import logging
 import mock
 import unittest
 import os
+import functools
 import cwltool.process
 
 if not os.getenv('ARVADOS_DEBUG'):
@@ -29,15 +30,20 @@ class TestContainer(unittest.TestCase):
         tool = {
             "inputs": [],
             "outputs": [],
-            "baseCommand": "ls"
+            "baseCommand": "ls",
+            "arguments": [{"valueFrom": "$(runtime.outdir)"}]
         }
-        arvtool = arvados_cwl.ArvadosCommandTool(runner, tool, work_api="containers", avsc_names=avsc_names, basedir="")
+        make_fs_access=functools.partial(arvados_cwl.CollectionFsAccess, api_client=runner.api)
+        arvtool = arvados_cwl.ArvadosCommandTool(runner, tool, work_api="containers", avsc_names=avsc_names,
+                                                 basedir="", make_fs_access=make_fs_access)
         arvtool.formatgraph = None
-        for j in arvtool.job({}, mock.MagicMock(), basedir="", name="test_run"):
+        for j in arvtool.job({}, mock.MagicMock(), basedir="", name="test_run",
+                             make_fs_access=make_fs_access, tmpdir="/tmp"):
             j.run()
             runner.api.container_requests().create.assert_called_with(
                 body={
                     'environment': {
+                        'HOME': '/var/spool/cwl',
                         'TMPDIR': '/tmp'
                     },
                     'name': 'test_run',
@@ -52,7 +58,7 @@ class TestContainer(unittest.TestCase):
                     'owner_uuid': 'zzzzz-8i9sb-zzzzzzzzzzzzzzz',
                     'output_path': '/var/spool/cwl',
                     'container_image': '99999999999999999999999999999993+99',
-                    'command': ['ls'],
+                    'command': ['ls', '/var/spool/cwl'],
                     'cwd': '/var/spool/cwl'
                 })
 
@@ -80,14 +86,18 @@ class TestContainer(unittest.TestCase):
             }],
             "baseCommand": "ls"
         }
-        arvtool = arvados_cwl.ArvadosCommandTool(runner, tool, work_api="containers", avsc_names=avsc_names)
+        make_fs_access=functools.partial(arvados_cwl.CollectionFsAccess, api_client=runner.api)
+        arvtool = arvados_cwl.ArvadosCommandTool(runner, tool, work_api="containers",
+                                                 avsc_names=avsc_names, make_fs_access=make_fs_access)
         arvtool.formatgraph = None
-        for j in arvtool.job({}, mock.MagicMock(), basedir="", name="test_resource_requirements"):
+        for j in arvtool.job({}, mock.MagicMock(), basedir="", name="test_resource_requirements",
+                             make_fs_access=make_fs_access, tmpdir="/tmp"):
             j.run()
 
         runner.api.container_requests().create.assert_called_with(
             body={
                 'environment': {
+                    'HOME': '/var/spool/cwl',
                     'TMPDIR': '/tmp'
                 },
                 'name': 'test_resource_requirements',
@@ -126,6 +136,7 @@ class TestContainer(unittest.TestCase):
         arvjob.output_callback = mock.MagicMock()
         arvjob.collect_outputs = mock.MagicMock()
         arvjob.successCodes = [0]
+        arvjob.outdir = "/var/spool/cwl"
 
         arvjob.done({
             "state": "Complete",
@@ -170,6 +181,7 @@ class TestContainer(unittest.TestCase):
         arvjob.output_callback = mock.MagicMock()
         arvjob.collect_outputs = mock.MagicMock()
         arvjob.successCodes = [0]
+        arvjob.outdir = "/var/spool/cwl"
 
         arvjob.done({
             "state": "Complete",