Example #1
0
def test_list_workflows(client):
    paginator = client.get_paginator('list_state_machines')
    paginator.paginate = MagicMock(return_value=[{
        'stateMachines': [{
            'stateMachineArn': state_machine_arn,
            'name': state_machine_name,
            'creationDate': datetime(2019, 1, 1)
        }],
        'NextToken':
        'Token'
    }])

    client.get_paginator = MagicMock(return_value=paginator)
    workflows = Workflow.list_workflows(max_items=999, client=client)

    paginator.paginate.assert_called_with(PaginationConfig={
        'MaxItems': 999,
        'PageSize': 1000
    })
def find_state_machine_arn(state_machine: str) -> str:
    """lookup the state machine arn based on the state machine name."""
    workflows = Workflow.list_workflows()
    state_machine_object = [
        workflow for workflow in workflows
        if workflow.get("name") == state_machine
    ]
    if len(state_machine_object) == 1:
        logger.debug(
            f"we have found one statemachine {state_machine_object[0]}")
        return state_machine_object[0].get("stateMachineArn")
    elif len(state_machine_object) == 0:
        logger.error(f"statemachine {state_machine} not found.")
        raise LookupError("no statemachine found.")
    else:
        logger.error(
            f"more than one statemachine found with name {state_machine}.")
        raise Exception(
            "more than one statemachine found. Something strange is going on ..."
        )