Ejemplo n.º 1
0
def test_lambda_handler_calls_auth_check_with_request(auth_check):
    """Test that lambda_handler calls authentication_check with request."""
    request = make_request()

    lambda_handler(request, authentication_check=auth_check)

    auth_check.assert_called_with(request)
Ejemplo n.º 2
0
def test_lambda_handler_converts_auth_check_fail_to_403(auth_check):
    """Tests that lambda_handler returns 403 on auth_check failures."""
    request = make_request()
    auth_check.side_effect = ForbiddenException("failed authentication")

    response = lambda_handler(request, authentication_check=auth_check)

    assert response["statusCode"] == 403
    assert json.loads(response["body"]) == ["failed authentication"]
Ejemplo n.º 3
0
def test_lambda_handler_saves_complaints_to_storage(dynamodb, auth_check):
    """Tests that lambda_handler saves complaints."""
    text = "dynamo db serializes objects"
    username = "******"

    body = {"text": text, "user_name": username}
    request = make_request(body)

    lambda_handler(request, authentication_check=auth_check)

    assert len(dynamodb.put_item.mock_calls) == 1
    args, kwargs = dynamodb.put_item.call_args

    item = kwargs["Item"]
    assert item["uuid"]["S"]
    assert item["timestamp"]["N"]
    assert item["reporter"]["S"] == username
    assert item["complaint"]["S"] == text
Ejemplo n.º 4
0
def test_lambda_handler_quotes_the_complaint(auth_check):
    """Test that the lambda_handler returns the complaint as a quote."""
    complaint = "about foo and bar"

    request_body = {"text": complaint}
    request = make_request(request_body)

    response = lambda_handler(request, authentication_check=auth_check)

    assert f'\n> {complaint}' in json.loads(response['body'])['text']
Ejemplo n.º 5
0
def test_lambda_handler_returns_a_total_number_of_complaints(dynamodb,
                                                             auth_check):
    """Tests that lambda_handler is counting the complaints."""
    count = 774
    dynamodb.scan.return_value = {"Count": 774}

    request = make_request()
    response = lambda_handler(request, authentication_check=auth_check)

    response_text = json.loads(response['body'])['text']
    assert f"\nCurtis has *{count}* recorded complaints." in response_text
Ejemplo n.º 6
0
def test_lambda_handler_returns_200(auth_check):
    """Test that lambda_handler returns a 200 status code."""
    request = make_request()
    response = lambda_handler(request, authentication_check=auth_check)
    assert response['statusCode'] == 200
Ejemplo n.º 7
0
def test_lambda_handler_returns_a_channel_visible_response(auth_check):
    """Tests that lambda_handler yells curtis's complaints to the channel."""
    request = make_request()
    response = lambda_handler(request, authentication_check=auth_check)

    assert json.loads(response['body'])['response_type'] == 'in_channel'