Exemplo n.º 1
0
def test_log_unauthenticated(capsys):
    wrapper = logging_wrapper(ok_handler)
    wrapper(empty_event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["logged_in"] is False
Exemplo n.º 2
0
def test_log_non_rest_response(capsys):
    wrapper = logging_wrapper(non_rest_handler)
    wrapper(empty_event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["level"] == "info"
Exemplo n.º 3
0
def test_log_dynamodb_item_count(capsys):
    event = {"Count": 123}
    wrapper = logging_wrapper(dynamodb_handler)
    wrapper(event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["dynamodb_item_count"] == 123
Exemplo n.º 4
0
def test_log_dynamodb(capsys):
    wrapper = logging_wrapper(dynamodb_handler)
    wrapper(empty_event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert "dynamodb_duration_ms" in log
    assert log["dynamodb_status_code"] == 200
Exemplo n.º 5
0
def test_log_duration(capsys):
    wrapper = logging_wrapper(timing_handler)
    wrapper(empty_event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["my_timer"] > 10.0
    assert log["response_status_code"] == 201
Exemplo n.º 6
0
def test_log_server_error(capsys):
    wrapper = logging_wrapper(server_error_handler)
    wrapper(empty_event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["response_status_code"] == 500
    assert log["response_body"] == "Internal Server Error"
    assert log["level"] == "error"
Exemplo n.º 7
0
def test_log_user_error(capsys):
    wrapper = logging_wrapper(user_error_handler)
    wrapper(empty_event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["response_status_code"] == 400
    assert log["response_body"] == "Bad Request"
    assert log["level"] == "info"
Exemplo n.º 8
0
def test_log_response_ok(capsys):
    wrapper = logging_wrapper(ok_handler)
    wrapper(empty_event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["response_status_code"] == 200
    assert "response_body" not in log
    assert log["level"] == "info"
Exemplo n.º 9
0
def test_log_authenticated(capsys):
    event = {"requestContext": {"authorizer": {"principalId": "abc123456"}}}
    wrapper = logging_wrapper(ok_handler)
    wrapper(event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["principal_id"] == "abc123xxx"
    assert log["logged_in"] is True
Exemplo n.º 10
0
def test_log_headers(capsys):
    wrapper = logging_wrapper(empty_handler)

    event = {"headers": {"X-Amzn-Trace-Id": "my-trace-id"}}
    wrapper(event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["aws_trace_id"] == "my-trace-id"
Exemplo n.º 11
0
def test_legacy_wrapper(capsys):
    decorator = logging_wrapper("my_old_service")
    wrapper = decorator(empty_handler)
    wrapper(empty_event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["service_name"] == "my_old_service"
    assert log["handler_method"] == "empty_handler"
    assert log["function_name"] == ""
Exemplo n.º 12
0
def test_log_service_name_from_env(capsys):
    os.environ["SERVICE_NAME"] = "my_other_service"

    wrapper = logging_wrapper(empty_handler)
    wrapper(empty_event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["service_name"] == "my_other_service"
    assert log["handler_method"] == "empty_handler"
    assert log["function_name"] == ""
Exemplo n.º 13
0
def test_log_exception(capsys):
    wrapper = logging_wrapper(throwing_handler)
    try:
        wrapper(empty_event, empty_context)
        assert False
    except Exception:
        pass

    log = json.loads(capsys.readouterr().out)

    assert log["level"] == "error"
    assert "Exception: fail!" in log["exception"]
Exemplo n.º 14
0
def test_log_context(capsys):
    wrapper = logging_wrapper(empty_handler)

    context = RequestContext(
        function_name="my_function",
        function_version="my_function_version",
        aws_request_id="my_request_id",
        memory_limit_in_mb=1024,
    )
    wrapper(empty_event, context)

    log = json.loads(capsys.readouterr().out)

    assert log["function_name"] == "my_function"
    assert log["function_version"] == "my_function_version"
    assert log["aws_request_id"] == "my_request_id"
    assert log["memory_limit_in_mb"] == 1024
Exemplo n.º 15
0
def test_log_event_data(capsys):
    wrapper = logging_wrapper(empty_handler)
    event = {
        "path": "my_path",
        "pathParameters": {
            "my_path_param": "my_value"
        },
        "requestContext": {
            "accountId": "1234567890",
            "stage": "my_stage",
            "apiId": "my_api_id",
            "domainName": "my_domain",
            "identity": {
                "sourceIp": "1.2.3.4"
            },
        },
        "resource": "my_resource",
        "httpMethod": "my_method",
        "queryStringParameters": {
            "my_query_param": "my_query_value",
            "token": "secret-stuff",
            "secretToken": "secret-stuff",
        },
    }
    wrapper(event, empty_context)

    log = json.loads(capsys.readouterr().out)

    assert log["function_stage"] == "my_stage"
    assert log["function_api_id"] == "my_api_id"
    assert log["aws_account_id"] == "1234567890"
    assert log["source_ip"] == "1.2.3.x"
    assert log["request_domain_name"] == "my_domain"
    assert log["request_resource"] == "my_resource"
    assert log["request_path"] == "my_path"
    assert log["request_method"] == "my_method"
    assert log["request_path_parameters"] == {"my_path_param": "my_value"}
    assert log["request_query_string_parameters"] == {
        "my_query_param": "my_query_value"
    }
    assert event["queryStringParameters"] == {
        "my_query_param": "my_query_value",
        "token": "secret-stuff",
        "secretToken": "secret-stuff",
    }
Exemplo n.º 16
0
def test_handler_name(capsys):
    wrapper = logging_wrapper(empty_handler)

    assert wrapper.__name__ == empty_handler.__name__