Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_retry_fail_for_unsupported_state():
c1 = Choice('My Choice')
with pytest.raises(ValueError):
c1.add_catch(Catch(error_equals=["States.NoChoiceMatched"], next_step=Fail("ChoiceFailed")))
{
'Variable': '$.StringVariable1',
'StringEquals': 'ABC',
'Next': 'End State 1'
},
{
'Variable': '$.StringVariable2',
'StringLessThanEquals': 'ABC',
'Next': 'End State 2'
}
],
'Default': 'End State 3'
}
with pytest.raises(TypeError):
Choice('Choice', unknown_field='Unknown Field')
with pytest.raises(ValueError):
chain = Chain()
chain.append(Pass('Pass'))
chain.append(Fail('Fail'))
chain.append(Pass('Pass2'))
with pytest.raises(ValueError):
chain = Chain()
chain.append(Pass('Pass'))
chain.append(Succeed('Succeed'))
chain.append(Pass('Pass2'))
with pytest.raises(ValueError):
chain = Chain()
chain.append(Pass('Pass'))
chain.append(Choice('Choice'))
chain.append(Pass('Pass2'))
def test_choice_state_with_placeholders():
first_state = Task('FirstState', resource='arn:aws:lambda:us-east-1:1234567890:function:FirstState')
retry = Chain([Pass('Retry'), Pass('Cleanup'), first_state])
choice_state = Choice('Is Completed?')
choice_state.add_choice(
ChoiceRule.BooleanEquals(choice_state.output()["Completed"], True),
Succeed('Complete')
)
choice_state.add_choice(
ChoiceRule.BooleanEquals(choice_state.output()["Completed"], False),
retry
)
first_state.next(choice_state)
result = Graph(first_state).to_dict()
expected_repr = {
"StartAt": "FirstState",
"States": {
def test_choice_state_creation():
choice_state = Choice('Choice', input_path='$.Input')
choice_state.add_choice(ChoiceRule.StringEquals("$.StringVariable1", "ABC"), Pass("End State 1"))
choice_state.add_choice(ChoiceRule.StringLessThanEquals("$.StringVariable2", "ABC"), Pass("End State 2"))
choice_state.default_choice(Pass('End State 3'))
assert choice_state.state_id == 'Choice'
assert len(choice_state.choices) == 2
assert choice_state.default.state_id == 'End State 3'
assert choice_state.to_dict() == {
'Type': 'Choice',
'InputPath': '$.Input',
'Choices': [
{
'Variable': '$.StringVariable1',
'StringEquals': 'ABC',
'Next': 'End State 1'
},
{