From 01937527fdd66736f8918d7a913ba4ae7101779c Mon Sep 17 00:00:00 2001 From: Giannis Doukas Date: Tue, 9 Jun 2020 16:34:07 +0100 Subject: [PATCH] increase test coverage --- cwlkernel/cwlrepository/cwlrepository.py | 6 ++--- tests/test_CWLKernel.py | 5 ++-- tests/test_cwlbuilder.py | 31 +++++++++++++++++++++--- 3 files changed, 34 insertions(+), 8 deletions(-) diff --git a/cwlkernel/cwlrepository/cwlrepository.py b/cwlkernel/cwlrepository/cwlrepository.py index 6dcc4ff..e91b2d1 100644 --- a/cwlkernel/cwlrepository/cwlrepository.py +++ b/cwlkernel/cwlrepository/cwlrepository.py @@ -42,9 +42,9 @@ def register_tool(self, tool: WorkflowComponent) -> None: path = Path(self._file_repository.write(f'{tool.id}.cwl', tool.to_yaml().encode())) self._registry[tool.id] = (deepcopy(tool), path) - def register_tools(self, *args): - for tool in args: - self.register_tool(tool) + # def register_tools(self, *args): + # for tool in args: + # self.register_tool(tool) def get_by_id(self, tool_id: str) -> Optional[WorkflowComponent]: comp = self._registry.get(tool_id, None) diff --git a/tests/test_CWLKernel.py b/tests/test_CWLKernel.py index bb33fde..a4af82a 100644 --- a/tests/test_CWLKernel.py +++ b/tests/test_CWLKernel.py @@ -477,6 +477,7 @@ def test_compose(self): type: File % newWorkflowAddStepIn tailstepid headstepid headoutput tailinput: headstepid/headoutput +% newWorkflowAddOutputSource tailstepid/tailoutput File % newWorkflowBuild""") ) @@ -486,7 +487,7 @@ def test_compose(self): "class": "Workflow", "id": "main", "inputs": [{'id': 'inputfile', 'type': 'File'}], - "outputs": [], + "outputs": [{'id': 'tailoutput', 'type': 'File', 'outputSource': "tailstepid/tailoutput"}], "steps": { "headstepid": { @@ -498,7 +499,7 @@ def test_compose(self): { "run": "tail.cwl", "in": {"tailinput": "headstepid/headoutput"}, - "out": [] + "out": ['tailoutput'] }, }, 'requirements': {} diff --git a/tests/test_cwlbuilder.py b/tests/test_cwlbuilder.py index d94c107..2475c27 100644 --- a/tests/test_cwlbuilder.py +++ b/tests/test_cwlbuilder.py @@ -1,9 +1,7 @@ -import tempfile import unittest -from pathlib import Path +from io import StringIO import yaml -from io import StringIO from cwlkernel.CWLBuilder import CWLSnippetBuilder @@ -90,3 +88,30 @@ def test_snippet_builder(self): yaml.load(StringIO(cwl_builder.get_current_code()), yaml.Loader), yaml.load(StringIO(cwl_workflow.to_yaml()), yaml.Loader) ) + + def test_build_without_id(self): + cwl_builder = CWLSnippetBuilder() + cwl_builder.append("""cwlVersion: v1.0 +class: CommandLineTool +baseCommand: echo +inputs: +- id: message + inputBinding: + position: 1 + type: string +outputs: []""") + with self.assertRaises(ValueError): + cwl_builder.build() + cwl_builder.append("id: echo") + cwl_tool = cwl_builder.build() + self.assertDictEqual( + {'cwlVersion': 'v1.0', + 'class': 'CommandLineTool', + 'baseCommand': 'echo', + 'id': 'echo', + 'inputs': [{'id': 'message', + 'inputBinding': {'position': 1}, + 'type': 'string'}], + 'outputs': []}, + cwl_tool.to_dict() + )