Functionality added to SES service (#3670)

* correct exceptions when mising parameters

* test_render_template function

* update ses template function

* fix import

* except fixed

* tests and py2 fix
This commit is contained in:
Cristopher Pinzón 2021-02-11 13:31:17 -05:00 committed by GitHub
commit c72670d536
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 211 additions and 5 deletions

View file

@ -1,4 +1,5 @@
from __future__ import unicode_literals
import json
import boto3
from botocore.exceptions import ClientError
@ -484,3 +485,67 @@ def test_create_ses_template():
result = conn.list_templates()
result["TemplatesMetadata"][0]["Name"].should.equal("MyTemplate")
@mock_ses
def test_render_template():
conn = boto3.client("ses", region_name="us-east-1")
kwargs = dict(
TemplateName="MyTestTemplate",
TemplateData=json.dumps({"name": "John", "favoriteanimal": "Lion"}),
)
with pytest.raises(ClientError) as ex:
conn.test_render_template(**kwargs)
ex.value.response["Error"]["Code"].should.equal("TemplateDoesNotExist")
conn.create_template(
Template={
"TemplateName": "MyTestTemplate",
"SubjectPart": "Greetings, {{name}}!",
"TextPart": "Dear {{name}},"
"\r\nYour favorite animal is {{favoriteanimal}}.",
"HtmlPart": "<h1>Hello {{name}},"
"</h1><p>Your favorite animal is {{favoriteanimal}}.</p>",
}
)
result = conn.test_render_template(**kwargs)
result["RenderedTemplate"].should.contain("Subject: Greetings, John!")
result["RenderedTemplate"].should.contain("Dear John,")
result["RenderedTemplate"].should.contain("<h1>Hello John,</h1>")
result["RenderedTemplate"].should.contain("Your favorite animal is Lion")
@mock_ses
def test_update_ses_template():
conn = boto3.client("ses", region_name="us-east-1")
template = {
"TemplateName": "MyTemplateToUpdate",
"SubjectPart": "Greetings, {{name}}!",
"TextPart": "Dear {{name}}," "\r\nYour favorite animal is {{favoriteanimal}}.",
"HtmlPart": "<h1>Hello {{name}},"
"</h1><p>Your favorite animal is {{favoriteanimal}}.</p>",
}
with pytest.raises(ClientError) as ex:
conn.update_template(Template=template)
ex.value.response["Error"]["Code"].should.equal("TemplateDoesNotExist")
conn.create_template(Template=template)
template["SubjectPart"] = "Hi, {{name}}!"
template["TextPart"] = "Dear {{name}},\r\n Your favorite color is {{color}}"
template[
"HtmlPart"
] = "<h1>Hello {{name}},</h1><p>Your favorite color is {{color}}</p>"
conn.update_template(Template=template)
result = conn.get_template(TemplateName=template["TemplateName"])
result["Template"]["SubjectPart"].should.equal("Hi, {{name}}!")
result["Template"]["TextPart"].should.equal(
"Dear {{name}},\n Your favorite color is {{color}}"
)
result["Template"]["HtmlPart"].should.equal(
"<h1>Hello {{name}},</h1><p>Your favorite color is {{color}}</p>"
)