moto/tests/test_apigateway/test_apigateway_gatewayresponses.py
2023-11-30 14:55:51 -01:00

143 lines
4.8 KiB
Python

import boto3
import pytest
from botocore.exceptions import ClientError
from moto import mock_apigateway
@mock_apigateway
def test_put_gateway_response_minimal():
client = boto3.client("apigateway", region_name="us-east-2")
api_id = client.create_rest_api(name="my_api", description="d")["id"]
resp = client.put_gateway_response(restApiId=api_id, responseType="DEFAULT_4XX")
assert resp["responseType"] == "DEFAULT_4XX"
assert resp["defaultResponse"] is False
@mock_apigateway
def test_put_gateway_response():
client = boto3.client("apigateway", region_name="us-east-2")
api_id = client.create_rest_api(name="my_api", description="d")["id"]
resp = client.put_gateway_response(
restApiId=api_id,
responseType="DEFAULT_4XX",
statusCode="401",
responseParameters={"gatewayresponse.header.Authorization": "'Basic'"},
responseTemplates={
"application/xml": "#set($inputRoot = $input.path('$'))\n{ }"
},
)
assert resp["responseType"] == "DEFAULT_4XX"
assert resp["defaultResponse"] is False
assert resp["statusCode"] == "401"
assert resp["responseParameters"] == {
"gatewayresponse.header.Authorization": "'Basic'"
}
assert resp["responseTemplates"] == {
"application/xml": "#set($inputRoot = $input.path('$'))\n{ }"
}
@mock_apigateway
def test_get_gateway_response_minimal():
client = boto3.client("apigateway", region_name="ap-southeast-1")
api_id = client.create_rest_api(name="my_api", description="d")["id"]
client.put_gateway_response(restApiId=api_id, responseType="DEFAULT_4XX")
resp = client.get_gateway_response(restApiId=api_id, responseType="DEFAULT_4XX")
assert resp["responseType"] == "DEFAULT_4XX"
assert resp["defaultResponse"] is False
@mock_apigateway
def test_get_gateway_response():
client = boto3.client("apigateway", region_name="us-east-2")
api_id = client.create_rest_api(name="my_api", description="d")["id"]
client.put_gateway_response(
restApiId=api_id,
responseType="DEFAULT_4XX",
statusCode="401",
responseParameters={"gatewayresponse.header.Authorization": "'Basic'"},
responseTemplates={
"application/xml": "#set($inputRoot = $input.path('$'))\n{ }"
},
)
resp = client.get_gateway_response(restApiId=api_id, responseType="DEFAULT_4XX")
assert resp["responseType"] == "DEFAULT_4XX"
assert resp["defaultResponse"] is False
assert resp["statusCode"] == "401"
assert resp["responseParameters"] == {
"gatewayresponse.header.Authorization": "'Basic'"
}
assert resp["responseTemplates"] == {
"application/xml": "#set($inputRoot = $input.path('$'))\n{ }"
}
@mock_apigateway
def test_get_gateway_response_unknown():
client = boto3.client("apigateway", region_name="us-east-2")
api_id = client.create_rest_api(name="my_api", description="d")["id"]
with pytest.raises(ClientError) as exc:
client.get_gateway_response(restApiId=api_id, responseType="DEFAULT_4XX")
err = exc.value.response["Error"]
assert err["Code"] == "NotFoundException"
@mock_apigateway
def test_get_gateway_responses_empty():
client = boto3.client("apigateway", region_name="ap-southeast-1")
api_id = client.create_rest_api(name="my_api", description="d")["id"]
resp = client.get_gateway_responses(restApiId=api_id)
assert resp["items"] == []
@mock_apigateway
def test_get_gateway_responses():
client = boto3.client("apigateway", region_name="ap-southeast-1")
api_id = client.create_rest_api(name="my_api", description="d")["id"]
client.put_gateway_response(restApiId=api_id, responseType="DEFAULT_4XX")
client.put_gateway_response(
restApiId=api_id, responseType="DEFAULT_5XX", statusCode="503"
)
resp = client.get_gateway_responses(restApiId=api_id)
assert len(resp["items"]) == 2
assert {"responseType": "DEFAULT_4XX", "defaultResponse": False} in resp["items"]
assert {
"responseType": "DEFAULT_5XX",
"defaultResponse": False,
"statusCode": "503",
} in resp["items"]
@mock_apigateway
def test_delete_gateway_response():
client = boto3.client("apigateway", region_name="ap-southeast-1")
api_id = client.create_rest_api(name="my_api", description="d")["id"]
client.put_gateway_response(restApiId=api_id, responseType="DEFAULT_4XX")
client.put_gateway_response(
restApiId=api_id, responseType="DEFAULT_5XX", statusCode="503"
)
resp = client.get_gateway_responses(restApiId=api_id)
assert len(resp["items"]) == 2
client.delete_gateway_response(restApiId=api_id, responseType="DEFAULT_5XX")
resp = client.get_gateway_responses(restApiId=api_id)
assert len(resp["items"]) == 1
assert {"responseType": "DEFAULT_4XX", "defaultResponse": False} in resp["items"]