"""Test integration of an app with AWS SES.""" from unittest.mock import MagicMock from moto import mock_ses from notifications_delivery.connectors import ses @mock_ses def test_get_ses_client(): """Test if SES client returns a valid SES object.""" client = ses.get_ses_client() assert client._service_model._service_name == 'ses' @mock_ses def test_send_email(monkeypatch): """Test the send email function.""" mock_client = MagicMock() monkeypatch.setattr( ses, 'get_ses_client', MagicMock(return_value=mock_client)) params = { 'subject': 'Analytics Digest Notification', 'to': 'test_recepient@theorchard.com', 'sender': 'test_sender@theorchard.com', 'html_body': '', 'text_body': '' } ses.send_email(params) ses.get_ses_client.assert_called_once() mock_client.send_email.assert_called_once_with( Destination={ 'ToAddresses': params['to'], }, Message={ 'Body': { 'Html': { 'Charset': 'UTF-8', 'Data': params['html_body'], }, 'Text': { 'Charset': 'UTF-8', 'Data': params['text_body'], } }, 'Subject': { 'Charset': 'UTF-8', 'Data': params['subject'], }, }, Source=params['sender'] )