def test_handle_state_failed_post(sumo_ssm_name, message):
    #setup failed POST param for lambda function
    client = boto3.client('ssm')
    client.put_parameter(Name=sumo_ssm_name,
                         Type='SecureString',
                         Value='https://httpstat.us/403',
                         KeyId='alias/aws/ssm')

    # run lambda function
    with pytest.raises(exceptions.ConnectionError):
        response = lambda_function.handle_state(sumo_ssm_name, message)
def test_handle_state_invalid_message():
    #setup param for lambda function
    client = boto3.client('ssm')
    client.put_parameter(Name=SUMO_SSM_NAME,
                         Type='SecureString',
                         Value='https://httpstat.us/200',
                         KeyId='alias/aws/ssm')

    # run lambda function
    with pytest.raises(TypeError):
        response = lambda_function.handle_state(SUMO_SSM_NAME,
                                                ['not', 'a', 'string'])
def test_handle_state_invalid_message(sumo_ssm_name):
    #setup param for lambda function
    boto3.setup_default_session()
    client = boto3.client('ssm')
    client.put_parameter(Name=sumo_ssm_name,
                         Type='SecureString',
                         Value='http://twilio.com',
                         KeyId='alias/aws/ssm')

    # run lambda function
    with pytest.raises(TypeError):
        response = lambda_function.handle_state(sumo_ssm_name,
                                                ['not', 'a', 'string'])
def test_handle_state():
    #setup param for lambda function
    client = boto3.client('ssm')
    client.put_parameter(Name=SUMO_SSM_NAME,
                         Type='SecureString',
                         Value='https://httpstat.us/200',
                         KeyId='alias/aws/ssm')

    # run lambda function
    response = lambda_function.handle_state(SUMO_SSM_NAME, MESSAGE)

    # test response
    assert response.get("status") == "success"
def test_handle_state(sumo_ssm_name, message):
    #setup param for lambda function
    boto3.setup_default_session()
    client = boto3.client('ssm')
    client.put_parameter(Name=sumo_ssm_name,
                         Type='SecureString',
                         Value='http://twilio.com',
                         KeyId='alias/aws/ssm')

    # run lambda function
    response = lambda_function.handle_state(sumo_ssm_name, message)

    # test response
    assert response.get("status") == "success"