Пример #1
0
 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)
Пример #2
0
    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)
Пример #3
0
    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
        )
Пример #4
0
 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)