Esempio n. 1
0
 def test_unknown_state_type(self):
     workflow = Workflow.loadFromFile(
         'tests/resources/unknown_type_workflow.json')
     if ispython3:
         with self.assertRaisesRegex(RuntimeError, "Unknown state type .*"):
             workflow.run()
     else:
         with self.assertRaisesRegexp(RuntimeError,
                                      "Unknown state type .*"):
             workflow.run()
Esempio n. 2
0
 def test_no_run_method(self):
     workflow = Workflow.loadFromFile(
         "tests/resources/no_run_method_state_workflow.json")
     if ispython3:
         with self.assertRaisesRegex(RuntimeError,
                                     "run function not implemented"):
             workflow.run()
     else:
         with self.assertRaisesRegexp(RuntimeError,
                                      "run function not implemented"):
             workflow.run()
Esempio n. 3
0
    def test_trigger_recursive_empty(self):
        workflow = Workflow.loadFromFile(
            'tests/resources/trigger_recursive_variable_none_workflow.json')
        workflow.variables['recursive'] = {'variable': {'check': None}}

        TriggerTrueState.called = False
        TriggerFalseState.called = False
        workflow.run()

        assert TriggerTrueState.called is True
        assert TriggerFalseState.called is False
Esempio n. 4
0
    def test_trigger_multiple_same(self):
        workflow = Workflow.loadFromFile(
            'tests/resources/trigger_multiple_same_workflow.json')
        workflow.variables['success'] = True

        TriggerTrueState.called = False
        TriggerFalseState.called = False
        workflow.run()

        assert TriggerTrueState.called is True
        assert TriggerFalseState.called is False
Esempio n. 5
0
    def test_trigger_multiple(self):
        workflow = Workflow.loadFromFile(
            'tests/resources/trigger_multiple_workflow.json')
        workflow.variables['success'] = True

        if ispython3:
            with self.assertRaisesRegex(
                    RuntimeError,
                    "A workflow could transition to multiple states"):
                workflow.run()
        else:
            with self.assertRaisesRegexp(
                    RuntimeError,
                    "A workflow could transition to multiple states"):
                workflow.run()
Esempio n. 6
0
import logging
import random

from CodeFlow.workflow import Workflow, State

logger = logging.getLogger('CodeFlow')
logger.setLevel(logging.INFO)

logger.info('starting example')


# list of state classes
class TestState(State):
    def run(self):
        self.variables['success'] = bool(random.getrandbits(1))


class DoMagicState(State):
    def run(self):
        print("gotta love this magic")


class PrintResultState(State):
    def run(self):
        print("success: {}".format(self.variables['success']))


# actually load and run the workflow
workflow = Workflow.loadFromFile('example/workflow.json')
workflow.run()
Esempio n. 7
0
 def test_is_not_state(self):
     workflow = Workflow.loadFromFile(
         "tests/resources/not_a_state_workflow.json")
     with self.assertRaises(TypeError):
         workflow.run()
Esempio n. 8
0
 def createWorkflow(self):
     return Workflow.loadFromFile(self.workflowFile)