Coverage for tests/test_dotTools.py : 36%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
# This file is part of ctrl_mpexec. # # Developed for the LSST Data Management System. # This product includes software developed by the LSST Project # (https://www.lsst.org). # See the COPYRIGHT file at the top-level directory of this distribution # for details of code ownership. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
Pipeline, TaskDef, PipelineTaskConnections)
dimensions=["visit", "detector"], storageClass="example", doc="Input for this task") dimensions=["visit", "detector"], storageClass="example", doc="Input for this task") dimensions=["visit", "detector"], storageClass="example", doc="Output for this task") dimensions=["visit", "detector"], storageClass="example", doc="Output for this task")
super().__init__(config=config) if not config.connections.input2: self.inputs.remove("input2") if not config.connections.output2: self.outputs.remove("output2")
"""Factory method for config instances
inputName and outputName can be either string or tuple of strings with two items max. """ config = ExamplePipelineTaskConfig() if isinstance(inputName, tuple): config.connections.input1 = inputName[0] config.connections.input2 = inputName[1] if len(inputName) > 1 else "" else: config.connections.input1 = inputName
if isinstance(outputName, tuple): config.connections.output1 = outputName[0] config.connections.output2 = outputName[1] if len(outputName) > 1 else "" else: config.connections.output1 = outputName
return config
"""Generate Pipeline instance.
Parameters ---------- tasks : list of tuples Each tuple in the list has 3 or 4 items: - input DatasetType name(s), string or tuple of strings - output DatasetType name(s), string or tuple of strings - task label, string - optional task class object, can be None
Returns ------- Pipeline instance """ pipe = Pipeline() for task in tasks: inputs = task[0] outputs = task[1] label = task[2] klass = task[3] if len(task) > 3 else ExamplePipelineTask config = _makeConfig(inputs, outputs) pipe.append(TaskDef("ExamplePipelineTask", config, klass, label)) return pipe
"""A test case for dotTools """
"""Tests for dotTools.pipeline2dot method """ pipeline = _makePipeline([("A", ("B", "C"), "task1"), ("C", "E", "task2"), ("B", "D", "task3"), (("D", "E"), "F", "task4")]) file = io.StringIO() pipeline2dot(pipeline, file)
# it's hard to validate complete output, just checking few basic things, # even that is not terribly stable lines = file.getvalue().strip().split('\n') ndatasets = 6 ntasks = 4 nedges = 10 nextra = 2 # graph header and closing self.assertEqual(len(lines), ndatasets + ntasks + nedges + nextra)
lsst.utils.tests.init()
lsst.utils.tests.init() unittest.main() |