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")
 |