Esempio n. 1
0
 def test_exclude_tasks_passing_none(self):
     t1 = self.MockTask()
     st = self.MockTask(deps=[t1])
     wf = Workflow(taskname='w1', starttask=st, exclude_tasks=None)
     self.assertEqual(wf.tasks, [(0, t1, False), (1, st, False)])
     wf.execute()
     self.assertEqual(self.executed, [t1, st])
Esempio n. 2
0
 def test_exclude_tasks_by_position(self):
     t1 = self.MockTask()
     st = self.MockTask(deps=[t1])
     wf = Workflow(taskname='w1', starttask=st, exclude_tasks=['1'])
     self.assertEqual(wf.tasks, [(0, t1, False), (1, st, True)])
     wf.execute()
     self.assertEqual(self.executed, [t1])
Esempio n. 3
0
 def test_simple_workflow(self):
     t1 = self.MockTask()
     st = self.MockTask(deps=[t1])
     wf = Workflow(starttask=st)
     self.assertEqual(wf.tasks, [(0, t1, False), (1, st, False)])
     wf.execute()
     self.assertEqual(self.executed, [t1, st])
Esempio n. 4
0
 def test_workflow_used_as_task(self):
     t0 = self.MockTask()
     t1 = self.MockTask(deps=[t0])
     w1 = Workflow(starttask=t1)
     t2 = self.MockTask(deps=[w1])
     w2 = Workflow(starttask=t2)
     self.assertEqual(w2.tasks, [(0, w1, False), (1, t2, False)])
     w2.execute()
     self.assertEqual(self.executed, [t0, t1, t2])
Esempio n. 5
0
    def test_include_tasks_by_classname(self):
        class IncludeMe(self.MockTask):
            pass

        t1 = self.MockTask()
        st = IncludeMe(deps=[t1])

        wf = Workflow(starttask=st, include_tasks=['IncludeMe'])
        self.assertEqual(wf.tasks, [(0, t1, True), (1, st, False)])
        wf.execute()
        self.assertEqual(self.executed, [st])
Esempio n. 6
0
    def test_exclude_tasks_by_classname(self):
        class Skipme(self.MockTask):
            pass

        t1 = self.MockTask()
        st = Skipme(deps=[t1])

        wf = Workflow(starttask=st, exclude_tasks=['Skipme'])
        self.assertEqual(wf.tasks, [(0, t1, False), (1, st, True)])
        wf.execute()
        self.assertEqual(self.executed, [t1])
Esempio n. 7
0
    def test_exitworkflow(self):
        class FailTask(Task):
            def execute(self):
                raise ExitWorkflow('FailTask', ExitWorkflow.EXIT_CANCELLED)

        wf = Workflow(starttask=FailTask())
        wf.execute()

        # doesn't fail even across sub workflows
        wf = Workflow(starttask=Workflow(starttask=FailTask()))
        wf.execute()

        def create_mock(status):
            class MockExitTask(Task):
                def execute(self):
                    raise ExitWorkflow('MockExitTask', status)
            return MockExitTask
        # doesn't fail, and finish OK
        wf = Workflow(starttask=create_mock(ExitWorkflow.EXIT_STOPPED))
        wf.execute()

        # will fail throwing ExitWorkflow exception
        wf = Workflow(starttask=create_mock(ExitWorkflow.EXIT_FAILED))
        self.assertRaises(ExitWorkflow, wf.execute)