Exemplo n.º 1
0
    def test_defaults(self):
        connection = mock.Mock()

        class Workflow(object):
            name = "TESTNAME"
            version = "TESTVERSION"

            default_task_start_to_close_timeout = "TEST_TSTCT"
            default_execution_start_to_close_timeout = "TEST_ESTCT"
            default_task_list = "TEST_TL"
            default_task_priority = "TEST_TP"
            default_child_policy = "TEST_CP"
            default_lambda_role = "TEST_LR"

        register_workflow(connection, "TESTDOMAIN", Workflow)

        connection.register_workflow_type.assert_called_once_with(
            defaultChildPolicy="TEST_CP",
            defaultExecutionStartToCloseTimeout="TEST_ESTCT",
            defaultLambdaRole="TEST_LR",
            defaultTaskList={"name": "TEST_TL"},
            defaultTaskPriority="TEST_TP",
            defaultTaskStartToCloseTimeout="TEST_TSTCT",
            domain="TESTDOMAIN",
            name="TESTNAME",
            version="TESTVERSION",
        )
Exemplo n.º 2
0
    def test_register_workflow_description(self):
        class TestWorkflow(object):
            name = "TestWorkflow"
            version = "1.0"
            description = "DESC"

        register_workflow(self.connection, "TEST", TestWorkflow)

        wt = self._describe_workflow("TestWorkflow", "1.0")
        self.assertEqual(wt["typeInfo"]["description"], "DESC")
Exemplo n.º 3
0
    def test_nominal(self):
        connection = mock.Mock()

        class Workflow(object):
            name = "TESTNAME"
            version = "TESTVERSION"

        register_workflow(connection, "TESTDOMAIN", Workflow)

        connection.register_workflow_type.assert_called_once_with(
            domain="TESTDOMAIN", name="TESTNAME", version="TESTVERSION"
        )
Exemplo n.º 4
0
    def test_register_workflow_default_timeout(self):
        class TestWorkflow(object):
            name = "TestWorkflow"
            version = "1.0"
            default_execution_start_to_close_timeout = 600
            default_task_start_to_close_timeout = 10

        register_workflow(self.connection, "TEST", TestWorkflow)

        wt = self._describe_workflow("TestWorkflow", "1.0")
        config = wt["configuration"]
        self.assertEqual(config["defaultTaskStartToCloseTimeout"], "10")
        self.assertEqual(config["defaultExecutionStartToCloseTimeout"], "600")
Exemplo n.º 5
0
    def run(self):
        connection = get_connection()
        workflows = [w for module in self.args.modules for w in module]

        if self.args.register_workflows:
            log.info("Registering workflow types")
            for workflow in workflows:
                created = register_workflow(connection=connection,
                                            domain=self.args.domain,
                                            workflow=workflow)
                if created:
                    log.info("Workflow type %s(%s): registered.",
                             workflow.name, workflow.version)
                else:
                    log.info("Workflow type %s(%s): already registered.",
                             workflow.name, workflow.version)

        log.info("Start decider worker...")
        worker = Worker(connection=connection,
                        domain=self.args.domain,
                        task_list=self.args.task_list,
                        workflows=workflows)

        while True:
            try:
                worker.run()
            except Exception:  # Doesn't catch KeyboardInterrupt
                log.exception("Decider crashed!")
Exemplo n.º 6
0
    def test_example_demo(self):
        from caravan.examples.demo import Demo

        result = register_workflow(self.connection, "TEST", Demo)
        self.assertTrue(result)

        workflow = self._list_workflows()[0]
        self.assertEqual(workflow["workflowType"]["name"], "Demo")
Exemplo n.º 7
0
    def test_register_workflow(self):
        class TestWorkflow(object):
            name = "TestWorkflow"
            version = "1.0"

        result = register_workflow(self.connection, "TEST", TestWorkflow)
        self.assertTrue(result)

        # Moto bug : https://github.com/spulec/moto/issues/495
        # result = register_workflow(connection, 'TEST', TestWorkflow)
        # self.assertTrue(result)

        workflow = self._list_workflows()[0]
        self.assertEqual(workflow["workflowType"]["name"], "TestWorkflow")
        self.assertEqual(workflow["workflowType"]["version"], "1.0")
Exemplo n.º 8
0
def valid_workflow_registration(workflow):
    connection = get_connection()
    with mock_swf():
        connection.register_domain(name='TEST',
                                   workflowExecutionRetentionPeriodInDays='1')
        register_workflow(connection, 'TEST', workflow)