130 lines
4.8 KiB
Python
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")
|