12 class TestMakeOutput(unittest.TestCase):
14 self.api = mock.MagicMock()
15 self.api._rootDesc = arvados.api('v1')._rootDesc
17 @mock.patch("arvados.collection.Collection")
18 @mock.patch("arvados.collection.CollectionReader")
19 def test_make_output_collection(self, reader, col):
20 keep_client = mock.MagicMock()
21 runner = arvados_cwl.ArvCwlRunner(self.api, keep_client=keep_client)
22 runner.project_uuid = 'zzzzz-j7d0g-zzzzzzzzzzzzzzz'
24 final = mock.MagicMock()
25 col.return_value = final
26 readermock = mock.MagicMock()
27 reader.return_value = readermock
29 cwlout = StringIO.StringIO()
30 openmock = mock.MagicMock()
31 final.open.return_value = openmock
32 openmock.__enter__.return_value = cwlout
34 runner.make_output_collection("Test output", {
37 "location": "keep:99999999999999999999999999999991+99/foo.txt",
43 "location": "keep:99999999999999999999999999999992+99/bar.txt",
48 final.copy.assert_has_calls([mock.call('bar.txt', 'baz.txt', overwrite=False, source_collection=readermock)])
49 final.copy.assert_has_calls([mock.call('foo.txt', 'foo.txt', overwrite=False, source_collection=readermock)])
50 final.save_new.assert_has_calls([mock.call(ensure_unique_name=True, name='Test output', owner_uuid='zzzzz-j7d0g-zzzzzzzzzzzzzzz')])
60 }""", cwlout.getvalue())
62 self.assertIs(final, runner.final_output_collection)