5
5
from pathlib import Path
6
6
from typing import Dict
7
7
8
+ from aws_lambda_powertools .event_handler import content_types
8
9
from aws_lambda_powertools .event_handler .api_gateway import (
9
- APPLICATION_JSON ,
10
10
ApiGatewayResolver ,
11
- BadRequestError ,
12
11
CORSConfig ,
13
- InternalServerError ,
14
- NotFoundError ,
15
12
ProxyEventType ,
16
13
Response ,
17
14
ResponseBuilder ,
15
+ )
16
+ from aws_lambda_powertools .event_handler .exceptions import (
17
+ BadRequestError ,
18
+ InternalServerError ,
19
+ NotFoundError ,
18
20
ServiceError ,
19
21
UnauthorizedError ,
20
22
)
@@ -60,15 +62,15 @@ def test_api_gateway_v1():
60
62
def get_lambda () -> Response :
61
63
assert isinstance (app .current_event , APIGatewayProxyEvent )
62
64
assert app .lambda_context == {}
63
- return Response (200 , APPLICATION_JSON , json .dumps ({"foo" : "value" }))
65
+ return Response (200 , content_types . APPLICATION_JSON , json .dumps ({"foo" : "value" }))
64
66
65
67
# WHEN calling the event handler
66
68
result = app (LOAD_GW_EVENT , {})
67
69
68
70
# THEN process event correctly
69
71
# AND set the current_event type as APIGatewayProxyEvent
70
72
assert result ["statusCode" ] == 200
71
- assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
73
+ assert result ["headers" ]["Content-Type" ] == content_types . APPLICATION_JSON
72
74
73
75
74
76
def test_api_gateway ():
@@ -98,15 +100,15 @@ def test_api_gateway_v2():
98
100
def my_path () -> Response :
99
101
assert isinstance (app .current_event , APIGatewayProxyEventV2 )
100
102
post_data = app .current_event .json_body
101
- return Response (200 , "plain/text" , post_data ["username" ])
103
+ return Response (200 , content_types . PLAIN_TEXT , post_data ["username" ])
102
104
103
105
# WHEN calling the event handler
104
106
result = app (load_event ("apiGatewayProxyV2Event.json" ), {})
105
107
106
108
# THEN process event correctly
107
109
# AND set the current_event type as APIGatewayProxyEventV2
108
110
assert result ["statusCode" ] == 200
109
- assert result ["headers" ]["Content-Type" ] == "plain/text"
111
+ assert result ["headers" ]["Content-Type" ] == content_types . PLAIN_TEXT
110
112
assert result ["body" ] == "tom"
111
113
112
114
@@ -220,7 +222,7 @@ def test_compress():
220
222
221
223
@app .get ("/my/request" , compress = True )
222
224
def with_compression () -> Response :
223
- return Response (200 , APPLICATION_JSON , expected_value )
225
+ return Response (200 , content_types . APPLICATION_JSON , expected_value )
224
226
225
227
def handler (event , context ):
226
228
return app .resolve (event , context )
@@ -266,7 +268,7 @@ def test_compress_no_accept_encoding():
266
268
267
269
@app .get ("/my/path" , compress = True )
268
270
def return_text () -> Response :
269
- return Response (200 , "text/plain" , expected_value )
271
+ return Response (200 , content_types . PLAIN_TEXT , expected_value )
270
272
271
273
# WHEN calling the event handler
272
274
result = app ({"path" : "/my/path" , "httpMethod" : "GET" , "headers" : {}}, None )
@@ -332,7 +334,7 @@ def rest_func() -> Dict:
332
334
333
335
# THEN automatically process this as a json rest api response
334
336
assert result ["statusCode" ] == 200
335
- assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
337
+ assert result ["headers" ]["Content-Type" ] == content_types . APPLICATION_JSON
336
338
expected_str = json .dumps (expected_dict , separators = ("," , ":" ), indent = None , cls = Encoder )
337
339
assert result ["body" ] == expected_str
338
340
@@ -387,7 +389,7 @@ def another_one():
387
389
# THEN routes by default return the custom cors headers
388
390
assert "headers" in result
389
391
headers = result ["headers" ]
390
- assert headers ["Content-Type" ] == APPLICATION_JSON
392
+ assert headers ["Content-Type" ] == content_types . APPLICATION_JSON
391
393
assert headers ["Access-Control-Allow-Origin" ] == cors_config .allow_origin
392
394
expected_allows_headers = "," .join (sorted (set (allow_header + cors_config ._REQUIRED_HEADERS )))
393
395
assert headers ["Access-Control-Allow-Headers" ] == expected_allows_headers
@@ -516,7 +518,7 @@ def bad_request_error():
516
518
# THEN return the bad request error response
517
519
# AND status code equals 400
518
520
assert result ["statusCode" ] == 400
519
- assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
521
+ assert result ["headers" ]["Content-Type" ] == content_types . APPLICATION_JSON
520
522
expected = {"statusCode" : 400 , "message" : "Missing required parameter" }
521
523
assert result ["body" ] == json_dump (expected )
522
524
@@ -531,7 +533,7 @@ def unauthorized_error():
531
533
# THEN return the unauthorized error response
532
534
# AND status code equals 401
533
535
assert result ["statusCode" ] == 401
534
- assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
536
+ assert result ["headers" ]["Content-Type" ] == content_types . APPLICATION_JSON
535
537
expected = {"statusCode" : 401 , "message" : "Unauthorized" }
536
538
assert result ["body" ] == json_dump (expected )
537
539
@@ -546,7 +548,7 @@ def not_found_error():
546
548
# THEN return the not found error response
547
549
# AND status code equals 404
548
550
assert result ["statusCode" ] == 404
549
- assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
551
+ assert result ["headers" ]["Content-Type" ] == content_types . APPLICATION_JSON
550
552
expected = {"statusCode" : 404 , "message" : "Not found" }
551
553
assert result ["body" ] == json_dump (expected )
552
554
@@ -561,7 +563,7 @@ def internal_server_error():
561
563
# THEN return the internal server error response
562
564
# AND status code equals 500
563
565
assert result ["statusCode" ] == 500
564
- assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
566
+ assert result ["headers" ]["Content-Type" ] == content_types . APPLICATION_JSON
565
567
expected = {"statusCode" : 500 , "message" : "Internal server error" }
566
568
assert result ["body" ] == json_dump (expected )
567
569
@@ -576,7 +578,7 @@ def service_error():
576
578
# THEN return the service error response
577
579
# AND status code equals 502
578
580
assert result ["statusCode" ] == 502
579
- assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
581
+ assert result ["headers" ]["Content-Type" ] == content_types . APPLICATION_JSON
580
582
assert "Access-Control-Allow-Origin" in result ["headers" ]
581
583
expected = {"statusCode" : 502 , "message" : "Something went wrong!" }
582
584
assert result ["body" ] == json_dump (expected )
0 commit comments