moto/tests/test_pinpoint/test_pinpoint.py
2022-03-07 20:37:50 -01:00

130 lines
4.8 KiB
Python

"""Unit tests for pinpoint-supported APIs."""
import boto3
import pytest
import sure # noqa # pylint: disable=unused-import
from botocore.exceptions import ClientError
from moto import mock_pinpoint
# See our Development Tips on writing tests for hints on how to write good tests:
# http://docs.getmoto.org/en/latest/docs/contributing/development_tips/tests.html
@mock_pinpoint
def test_create_app():
client = boto3.client("pinpoint", region_name="us-east-1")
resp = client.create_app(CreateApplicationRequest={"Name": "myfirstapp"})
resp.should.have.key("ApplicationResponse")
resp["ApplicationResponse"].should.have.key("Arn")
resp["ApplicationResponse"].should.have.key("Id")
resp["ApplicationResponse"].should.have.key("Name").equals("myfirstapp")
resp["ApplicationResponse"].should.have.key("CreationDate")
@mock_pinpoint
def test_delete_app():
client = boto3.client("pinpoint", region_name="ap-southeast-1")
creation = client.create_app(CreateApplicationRequest={"Name": "myfirstapp"})[
"ApplicationResponse"
]
app_id = creation["Id"]
deletion = client.delete_app(ApplicationId=app_id)["ApplicationResponse"]
deletion.should.equal(creation)
with pytest.raises(ClientError) as exc:
client.get_app(ApplicationId=app_id)
err = exc.value.response["Error"]
err["Code"].should.equal("NotFoundException")
err["Message"].should.equal("Application not found")
@mock_pinpoint
def test_get_app():
client = boto3.client("pinpoint", region_name="eu-west-1")
resp = client.create_app(CreateApplicationRequest={"Name": "myfirstapp"})
app_id = resp["ApplicationResponse"]["Id"]
resp = client.get_app(ApplicationId=app_id)
resp.should.have.key("ApplicationResponse")
resp["ApplicationResponse"].should.have.key("Arn")
resp["ApplicationResponse"].should.have.key("Id")
resp["ApplicationResponse"].should.have.key("Name").equals("myfirstapp")
resp["ApplicationResponse"].should.have.key("CreationDate")
@mock_pinpoint
def test_get_apps_initial():
client = boto3.client("pinpoint", region_name="us-east-1")
resp = client.get_apps()
resp.should.have.key("ApplicationsResponse")
resp["ApplicationsResponse"].should.equal({"Item": []})
@mock_pinpoint
def test_get_apps():
client = boto3.client("pinpoint", region_name="us-east-1")
resp = client.create_app(CreateApplicationRequest={"Name": "myfirstapp"})
app_id = resp["ApplicationResponse"]["Id"]
resp = client.get_apps()
resp.should.have.key("ApplicationsResponse").should.have.key("Item").length_of(1)
resp["ApplicationsResponse"]["Item"][0].should.have.key("Arn")
resp["ApplicationsResponse"]["Item"][0].should.have.key("Id").equals(app_id)
resp["ApplicationsResponse"]["Item"][0].should.have.key("Name").equals("myfirstapp")
resp["ApplicationsResponse"]["Item"][0].should.have.key("CreationDate")
@mock_pinpoint
def test_update_application_settings():
client = boto3.client("pinpoint", region_name="eu-west-1")
resp = client.create_app(CreateApplicationRequest={"Name": "myfirstapp"})
app_id = resp["ApplicationResponse"]["Id"]
resp = client.update_application_settings(
ApplicationId=app_id,
WriteApplicationSettingsRequest={
"CampaignHook": {"LambdaFunctionName": "lfn"},
"CloudWatchMetricsEnabled": True,
"EventTaggingEnabled": True,
"Limits": {"Daily": 42},
},
)
resp.should.have.key("ApplicationSettingsResource")
app_settings = resp["ApplicationSettingsResource"]
app_settings.should.have.key("ApplicationId").equals(app_id)
app_settings.should.have.key("CampaignHook").equals({"LambdaFunctionName": "lfn"})
app_settings.should.have.key("Limits").equals({"Daily": 42})
app_settings.should.have.key("LastModifiedDate")
@mock_pinpoint
def test_get_application_settings():
client = boto3.client("pinpoint", region_name="ap-southeast-1")
resp = client.create_app(CreateApplicationRequest={"Name": "myfirstapp"})
app_id = resp["ApplicationResponse"]["Id"]
client.update_application_settings(
ApplicationId=app_id,
WriteApplicationSettingsRequest={
"CampaignHook": {"LambdaFunctionName": "lfn"},
"CloudWatchMetricsEnabled": True,
"EventTaggingEnabled": True,
"Limits": {"Daily": 42},
},
)
resp = client.get_application_settings(ApplicationId=app_id)
resp.should.have.key("ApplicationSettingsResource")
app_settings = resp["ApplicationSettingsResource"]
app_settings.should.have.key("ApplicationId").equals(app_id)
app_settings.should.have.key("CampaignHook").equals({"LambdaFunctionName": "lfn"})
app_settings.should.have.key("Limits").equals({"Daily": 42})
app_settings.should.have.key("LastModifiedDate")