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 ..." )