SES: Implement DescribeConfigurationSet (#5378)
This commit is contained in:
parent
c40c6895ce
commit
f91ffcffb8
@ -15,6 +15,13 @@ class ConfigurationSetDoesNotExist(RESTError):
|
|||||||
super().__init__("ConfigurationSetDoesNotExist", message)
|
super().__init__("ConfigurationSetDoesNotExist", message)
|
||||||
|
|
||||||
|
|
||||||
|
class ConfigurationSetAlreadyExists(RESTError):
|
||||||
|
code = 400
|
||||||
|
|
||||||
|
def __init__(self, message):
|
||||||
|
super().__init__("ConfigurationSetAlreadyExists", message)
|
||||||
|
|
||||||
|
|
||||||
class EventDestinationAlreadyExists(RESTError):
|
class EventDestinationAlreadyExists(RESTError):
|
||||||
code = 400
|
code = 400
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@ from .exceptions import (
|
|||||||
RuleSetDoesNotExist,
|
RuleSetDoesNotExist,
|
||||||
RuleAlreadyExists,
|
RuleAlreadyExists,
|
||||||
MissingRenderingAttributeException,
|
MissingRenderingAttributeException,
|
||||||
|
ConfigurationSetAlreadyExists,
|
||||||
)
|
)
|
||||||
from .utils import get_random_message_id, is_valid_address
|
from .utils import get_random_message_id, is_valid_address
|
||||||
from .feedback import COMMON_MAIL, BOUNCE, COMPLAINT, DELIVERY
|
from .feedback import COMMON_MAIL, BOUNCE, COMPLAINT, DELIVERY
|
||||||
@ -358,9 +359,20 @@ class SESBackend(BaseBackend):
|
|||||||
return {}
|
return {}
|
||||||
|
|
||||||
def create_configuration_set(self, configuration_set_name):
|
def create_configuration_set(self, configuration_set_name):
|
||||||
|
if configuration_set_name in self.config_set:
|
||||||
|
raise ConfigurationSetAlreadyExists(
|
||||||
|
f"Configuration set <{configuration_set_name}> already exists"
|
||||||
|
)
|
||||||
self.config_set[configuration_set_name] = 1
|
self.config_set[configuration_set_name] = 1
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
def get_configuration_set(self, configuration_set_name):
|
||||||
|
if configuration_set_name not in self.config_set:
|
||||||
|
raise ConfigurationSetDoesNotExist(
|
||||||
|
f"Configuration set <{configuration_set_name}> does not exist"
|
||||||
|
)
|
||||||
|
return {}
|
||||||
|
|
||||||
def create_configuration_set_event_destination(
|
def create_configuration_set_event_destination(
|
||||||
self, configuration_set_name, event_destination
|
self, configuration_set_name, event_destination
|
||||||
):
|
):
|
||||||
|
@ -194,6 +194,12 @@ class EmailResponse(BaseResponse):
|
|||||||
template = self.response_template(CREATE_CONFIGURATION_SET)
|
template = self.response_template(CREATE_CONFIGURATION_SET)
|
||||||
return template.render()
|
return template.render()
|
||||||
|
|
||||||
|
def describe_configuration_set(self):
|
||||||
|
configuration_set_name = self.querystring.get("ConfigurationSetName")[0]
|
||||||
|
self.backend.get_configuration_set(configuration_set_name)
|
||||||
|
template = self.response_template(DESCRIBE_CONFIGURATION_SET)
|
||||||
|
return template.render(name=configuration_set_name)
|
||||||
|
|
||||||
def create_configuration_set_event_destination(self):
|
def create_configuration_set_event_destination(self):
|
||||||
|
|
||||||
configuration_set_name = self._get_param("ConfigurationSetName")
|
configuration_set_name = self._get_param("ConfigurationSetName")
|
||||||
@ -533,6 +539,17 @@ CREATE_CONFIGURATION_SET = """<CreateConfigurationSetResponse xmlns="http://ses.
|
|||||||
</ResponseMetadata>
|
</ResponseMetadata>
|
||||||
</CreateConfigurationSetResponse>"""
|
</CreateConfigurationSetResponse>"""
|
||||||
|
|
||||||
|
DESCRIBE_CONFIGURATION_SET = """<DescribeConfigurationSetResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
|
||||||
|
<DescribeConfigurationSetResult>
|
||||||
|
<ConfigurationSet>
|
||||||
|
<Name>{{ name }}</Name>
|
||||||
|
</ConfigurationSet>
|
||||||
|
</DescribeConfigurationSetResult>
|
||||||
|
<ResponseMetadata>
|
||||||
|
<RequestId>8e410745-c1bd-4450-82e0-f968cf2105f2</RequestId>
|
||||||
|
</ResponseMetadata>
|
||||||
|
</DescribeConfigurationSetResponse>"""
|
||||||
|
|
||||||
CREATE_CONFIGURATION_SET_EVENT_DESTINATION = """<CreateConfigurationSetEventDestinationResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
|
CREATE_CONFIGURATION_SET_EVENT_DESTINATION = """<CreateConfigurationSetEventDestinationResponse xmlns="http://ses.amazonaws.com/doc/2010-12-01/">
|
||||||
<CreateConfigurationSetEventDestinationResult/>
|
<CreateConfigurationSetEventDestinationResult/>
|
||||||
<ResponseMetadata>
|
<ResponseMetadata>
|
||||||
|
@ -502,6 +502,10 @@ def test_create_configuration_set():
|
|||||||
conn = boto3.client("ses", region_name="us-east-1")
|
conn = boto3.client("ses", region_name="us-east-1")
|
||||||
conn.create_configuration_set(ConfigurationSet=dict({"Name": "test"}))
|
conn.create_configuration_set(ConfigurationSet=dict({"Name": "test"}))
|
||||||
|
|
||||||
|
with pytest.raises(ClientError) as ex:
|
||||||
|
conn.create_configuration_set(ConfigurationSet=dict({"Name": "test"}))
|
||||||
|
ex.value.response["Error"]["Code"].should.equal("ConfigurationSetAlreadyExists")
|
||||||
|
|
||||||
conn.create_configuration_set_event_destination(
|
conn.create_configuration_set_event_destination(
|
||||||
ConfigurationSetName="test",
|
ConfigurationSetName="test",
|
||||||
EventDestination={
|
EventDestination={
|
||||||
@ -545,6 +549,25 @@ def test_create_configuration_set():
|
|||||||
ex.value.response["Error"]["Code"].should.equal("EventDestinationAlreadyExists")
|
ex.value.response["Error"]["Code"].should.equal("EventDestinationAlreadyExists")
|
||||||
|
|
||||||
|
|
||||||
|
@mock_ses
|
||||||
|
def test_describe_configuration_set():
|
||||||
|
conn = boto3.client("ses", region_name="us-east-1")
|
||||||
|
|
||||||
|
name = "test"
|
||||||
|
conn.create_configuration_set(ConfigurationSet=dict({"Name": name}))
|
||||||
|
|
||||||
|
with pytest.raises(ClientError) as ex:
|
||||||
|
conn.describe_configuration_set(
|
||||||
|
ConfigurationSetName="failtest",
|
||||||
|
)
|
||||||
|
ex.value.response["Error"]["Code"].should.equal("ConfigurationSetDoesNotExist")
|
||||||
|
|
||||||
|
config_set = conn.describe_configuration_set(
|
||||||
|
ConfigurationSetName=name,
|
||||||
|
)
|
||||||
|
config_set["ConfigurationSet"]["Name"].should.equal(name)
|
||||||
|
|
||||||
|
|
||||||
@mock_ses
|
@mock_ses
|
||||||
def test_create_receipt_rule_set():
|
def test_create_receipt_rule_set():
|
||||||
conn = boto3.client("ses", region_name="us-east-1")
|
conn = boto3.client("ses", region_name="us-east-1")
|
||||||
|
Loading…
Reference in New Issue
Block a user