10
10
ApiGatewayResolver ,
11
11
BadRequestError ,
12
12
CORSConfig ,
13
+ InternalServerError ,
13
14
NotFoundError ,
14
15
ProxyEventType ,
15
16
Response ,
@@ -501,6 +502,14 @@ def test_service_error_response():
501
502
# GIVEN a service error response
502
503
app = ApiGatewayResolver (cors = CORSConfig ())
503
504
505
+ @app .route (method = "GET" , rule = "/bad-request-error" , cors = False )
506
+ def bad_request_error ():
507
+ raise BadRequestError ("Missing required parameter" )
508
+
509
+ @app .route (method = "GET" , rule = "/unauthorized-error" , cors = False )
510
+ def unauthorized_error ():
511
+ raise UnauthorizedError ("Unauthorized" )
512
+
504
513
@app .route (method = "GET" , rule = "/service-error" , cors = True )
505
514
def service_error ():
506
515
raise ServiceError (403 , "Unauthorized" )
@@ -509,13 +518,27 @@ def service_error():
509
518
def not_found_error ():
510
519
raise NotFoundError
511
520
512
- @app .route (method = "GET" , rule = "/bad-request -error" , cors = False )
513
- def bad_request_error ():
514
- raise BadRequestError ( "Missing required parameter " )
521
+ @app .route (method = "GET" , rule = "/internal-server -error" , cors = False )
522
+ def internal_server_error ():
523
+ raise InternalServerError ( "Internal server error " )
515
524
516
- @app .route (method = "GET" , rule = "/unauthorized-error" , cors = False )
517
- def unauthorized_error ():
518
- raise UnauthorizedError ("Unauthorized" )
525
+ # WHEN calling the handler
526
+ # AND path is /bad-request-error
527
+ result = app ({"path" : "/bad-request-error" , "httpMethod" : "GET" }, None )
528
+ # THEN return the bad request error response
529
+ # AND status code equals 400
530
+ assert result ["statusCode" ] == 400
531
+ assert result ["body" ] == json .dumps ({"message" : "Missing required parameter" })
532
+ assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
533
+
534
+ # WHEN calling the handler
535
+ # AND path is /unauthorized-error
536
+ result = app ({"path" : "/unauthorized-error" , "httpMethod" : "GET" }, None )
537
+ # THEN return the unauthorized error response
538
+ # AND status code equals 401
539
+ assert result ["statusCode" ] == 401
540
+ assert result ["body" ] == json .dumps ({"message" : "Unauthorized" })
541
+ assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
519
542
520
543
# WHEN calling the handler
521
544
# AND path is /service-error
@@ -537,19 +560,10 @@ def unauthorized_error():
537
560
assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
538
561
539
562
# WHEN calling the handler
540
- # AND path is /bad-request-error
541
- result = app ({"path" : "/bad-request-error" , "httpMethod" : "GET" }, None )
542
- # THEN return the bad request error response
543
- # AND status code equals 400
544
- assert result ["statusCode" ] == 400
545
- assert result ["body" ] == json .dumps ({"message" : "Missing required parameter" })
546
- assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
547
-
548
- # WHEN calling the handler
549
- # AND path is /unauthorized-error
550
- result = app ({"path" : "/unauthorized-error" , "httpMethod" : "GET" }, None )
551
- # THEN return the unauthorized error response
552
- # AND status code equals 401
553
- assert result ["statusCode" ] == 401
554
- assert result ["body" ] == json .dumps ({"message" : "Unauthorized" })
563
+ # AND path is /internal-server-error
564
+ result = app ({"path" : "/internal-server-error" , "httpMethod" : "GET" }, None )
565
+ # THEN return the internal server error response
566
+ # AND status code equals 500
567
+ assert result ["statusCode" ] == 500
568
+ assert result ["body" ] == json .dumps ({"message" : "Internal server error" })
555
569
assert result ["headers" ]["Content-Type" ] == APPLICATION_JSON
0 commit comments