X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/c2af1e524e87fa76f51bed62d4821d4fe1b7fcc0..b0cbc39917df391c0f0e7f31d9d46c5cc9070520:/sdk/cwl/tests/test_container.py diff --git a/sdk/cwl/tests/test_container.py b/sdk/cwl/tests/test_container.py index 93100ae9f7..bb661550da 100644 --- a/sdk/cwl/tests/test_container.py +++ b/sdk/cwl/tests/test_container.py @@ -68,7 +68,8 @@ class TestContainer(unittest.TestCase): 'output_path': '/var/spool/cwl', 'container_image': '99999999999999999999999999999993+99', 'command': ['ls', '/var/spool/cwl'], - 'cwd': '/var/spool/cwl' + 'cwd': '/var/spool/cwl', + 'scheduling_parameters': {} }) # The test passes some fields in builder.resources @@ -113,8 +114,9 @@ class TestContainer(unittest.TestCase): make_fs_access=make_fs_access, tmpdir="/tmp"): j.run() - runner.api.container_requests().create.assert_called_with( - body={ + call_args, call_kwargs = runner.api.container_requests().create.call_args + + call_body_expected = { 'environment': { 'HOME': '/var/spool/cwl', 'TMPDIR': '/tmp' @@ -124,8 +126,7 @@ class TestContainer(unittest.TestCase): 'vcpus': 3, 'ram': 3145728000, 'keep_cache_ram': 512, - 'API': True, - 'partition': ['blurb'] + 'API': True }, 'use_existing': True, 'priority': 1, @@ -137,8 +138,16 @@ class TestContainer(unittest.TestCase): 'output_path': '/var/spool/cwl', 'container_image': '99999999999999999999999999999993+99', 'command': ['ls'], - 'cwd': '/var/spool/cwl' - }) + 'cwd': '/var/spool/cwl', + 'scheduling_parameters': { + 'partitions': ['blurb'] + } + } + + call_body = call_kwargs.get('body', None) + self.assertNotEqual(None, call_body) + for key in call_body: + self.assertEqual(call_body_expected.get(key), call_body.get(key)) @mock.patch("arvados.collection.Collection") def test_done(self, col): @@ -150,54 +159,11 @@ class TestContainer(unittest.TestCase): runner.num_retries = 0 runner.ignore_docker_for_reuse = False - col().open.return_value = [] - api.collections().list().execute.side_effect = ({"items": []}, - {"items": [{"manifest_text": "XYZ"}]}) - - arvjob = arvados_cwl.ArvadosContainer(runner) - arvjob.name = "testjob" - arvjob.builder = mock.MagicMock() - arvjob.output_callback = mock.MagicMock() - arvjob.collect_outputs = mock.MagicMock() - arvjob.successCodes = [0] - arvjob.outdir = "/var/spool/cwl" - - arvjob.done({ - "state": "Complete", - "output": "99999999999999999999999999999993+99", - "log": "99999999999999999999999999999994+99", - "uuid": "zzzzz-8i9sb-zzzzzzzzzzzzzzz", - "exit_code": 0 - }) - - api.collections().list.assert_has_calls([ - mock.call(), - mock.call(filters=[['owner_uuid', '=', 'zzzzz-8i9sb-zzzzzzzzzzzzzzz'], - ['portable_data_hash', '=', '99999999999999999999999999999993+99'], - ['name', '=', 'Output 9999999 of testjob']]), - mock.call().execute(num_retries=0), - mock.call(limit=1, filters=[['portable_data_hash', '=', '99999999999999999999999999999993+99']], - select=['manifest_text']), - mock.call().execute(num_retries=0)]) - - api.collections().create.assert_called_with( - ensure_unique_name=True, - body={'portable_data_hash': '99999999999999999999999999999993+99', - 'manifest_text': 'XYZ', - 'owner_uuid': 'zzzzz-8i9sb-zzzzzzzzzzzzzzz', - 'name': 'Output 9999999 of testjob'}) - - @mock.patch("arvados.collection.Collection") - def test_done_use_existing_collection(self, col): - api = mock.MagicMock() - - runner = mock.MagicMock() - runner.api = api - runner.project_uuid = "zzzzz-8i9sb-zzzzzzzzzzzzzzz" - runner.num_retries = 0 + runner.api.containers().get().execute.return_value = {"state":"Complete", + "output": "abc+123", + "exit_code": 0} col().open.return_value = [] - api.collections().list().execute.side_effect = ({"items": [{"uuid": "zzzzz-4zz18-zzzzzzzzzzzzzz2"}]},) arvjob = arvados_cwl.ArvadosContainer(runner) arvjob.name = "testjob" @@ -207,19 +173,17 @@ class TestContainer(unittest.TestCase): arvjob.successCodes = [0] arvjob.outdir = "/var/spool/cwl" + arvjob.collect_outputs.return_value = {"out": "stuff"} + arvjob.done({ - "state": "Complete", - "output": "99999999999999999999999999999993+99", - "log": "99999999999999999999999999999994+99", - "uuid": "zzzzz-8i9sb-zzzzzzzzzzzzzzz", - "exit_code": 0 + "state": "Final", + "log_uuid": "zzzzz-4zz18-zzzzzzzzzzzzzz1", + "output_uuid": "zzzzz-4zz18-zzzzzzzzzzzzzz2", + "uuid": "zzzzz-xvhdp-zzzzzzzzzzzzzzz", + "container_uuid": "zzzzz-8i9sb-zzzzzzzzzzzzzzz" }) - api.collections().list.assert_has_calls([ - mock.call(), - mock.call(filters=[['owner_uuid', '=', 'zzzzz-8i9sb-zzzzzzzzzzzzzzz'], - ['portable_data_hash', '=', '99999999999999999999999999999993+99'], - ['name', '=', 'Output 9999999 of testjob']]), - mock.call().execute(num_retries=0)]) - self.assertFalse(api.collections().create.called) + + arvjob.collect_outputs.assert_called_with("keep:abc+123") + arvjob.output_callback.assert_called_with({"out": "stuff"}, "success")