def test_workflow_with_generated_task_classes(self): wf = specs.Workflow() AddTwo = spec_class_generator('AddTwo', self.add_two) AddThree = spec_class_generator('AddThree', self.add_three) Multiply = spec_class_generator('Multiply', self.multiply) wf.add_task(AddTwo(), 'a2') wf.add_task(AddThree(), 'a3') wf.add_task(Multiply(), 'm') wf.connect_tasks('a3', 'm', {'b': 'in1'}) wf.connect_tasks('a2', 'm', {'b': 'in2'}) # Add default as defined in self.workflow wf.set_default('a3.a', {'format': 'number', 'data': 10}) self.assertEquals(wf, self.workflow) inputs = {'a2.a': {'format': 'json', 'data': '1'}, 'a3.a': {'format': 'number', 'data': 2}} ground = run(self.workflow, inputs=inputs) system = run(wf, inputs=inputs) self.assertEquals(system, ground)
def test_spec_class_generator(self): """ Instantiated classes from spec_class_generator should equal their spec. """ for spec in [self.add, self.add_three, self.add_two, self.multiply]: cls = spec_class_generator('cls', spec) self.assertEqual(cls(), spec)