def test_sequence(self): workflow.make_task_sequence( ["a", "b", "c"], lambda task_id: self.make_dummy_task(task_id=task_id) ) self.assertTrue(self.process_flow()) self.assertListEqual(["a", "b", "c"], self.run_order)
def test_subworkflow_with_begin_end(self): tasks = workflow.make_task_sequence( ["a", "b", "c", "d"], lambda task_id: self.make_dummy_task(task_id=task_id)) sub1 = workflow.SubWorkflow(workflow=self.flow, name="sub1", begin=tasks[0], end=tasks[1]) sub2 = workflow.SubWorkflow(workflow=self.flow, name="sub1", begin=tasks[2], end=tasks[3]) self.make_dummy_task(workflow=sub1, task_id="in_sub1") self.make_dummy_task(workflow=sub2, task_id="in_sub2") first_task = self.make_dummy_task(task_id="first") sub1.must_run_after(first_task) last_task = self.make_dummy_task(task_id="last") sub2.must_run_before(last_task) self.assertSetEqual({"first"}, sub1.runs_after) self.assertSetEqual({"c"}, sub1.runs_before) self.assertSetEqual({"b"}, sub2.runs_after) self.assertSetEqual({"last"}, sub2.runs_before) # sub1 and sub2 are already ordered since their begin and ends are from the same sequence self.assertTrue(self.process_flow()) self.assertListEqual( ["first", "a", "in_sub1", "b", "c", "in_sub2", "d", "last"], self.run_order)
def test_subworkflow_with_begin_end(self): tasks = workflow.make_task_sequence( ["a", "b", "c", "d"], lambda task_id: self.make_dummy_task(task_id=task_id) ) sub1 = workflow.SubWorkflow(workflow=self.flow, name="sub1", begin=tasks[0], end=tasks[1]) sub2 = workflow.SubWorkflow(workflow=self.flow, name="sub1", begin=tasks[2], end=tasks[3]) self.make_dummy_task(workflow=sub1, task_id="in_sub1") self.make_dummy_task(workflow=sub2, task_id="in_sub2") first_task = self.make_dummy_task(task_id="first") sub1.must_run_after(first_task) last_task = self.make_dummy_task(task_id="last") sub2.must_run_before(last_task) self.assertSetEqual({"first"}, sub1.runs_after) self.assertSetEqual({"c"}, sub1.runs_before) self.assertSetEqual({"b"}, sub2.runs_after) self.assertSetEqual({"last"}, sub2.runs_before) # sub1 and sub2 are already ordered since their begin and ends are from the same sequence self.assertTrue(self.process_flow()) self.assertListEqual( ["first", "a", "in_sub1", "b", "c", "in_sub2", "d", "last"], self.run_order )
def test_sequence(self): workflow.make_task_sequence( ["a", "b", "c"], lambda task_id: self.make_dummy_task(task_id=task_id)) self.assertTrue(self.process_flow()) self.assertListEqual(["a", "b", "c"], self.run_order)