"""Test cases for SES module.""" from unittest import mock import pytest import ses @mock.patch('ses.boto3') def test_send_email(boto3): """Test send_email utility function.""" mock_client = mock.MagicMock() boto3.client.return_value = mock_client recipient = 'test@email.com' sender = 'test@theorhcard.com' subject = 'test email subject' message = 'test message' charset = 'utf-8' ses.send_email(recipient, sender, subject, message) mock_client.send_email.assert_called_once_with( Source=sender, Destination={'ToAddresses': [recipient]}, Message={ 'Subject': { 'Data': subject, 'Charset': charset }, 'Body': { 'Html': { 'Data': message, 'Charset': charset } } }, ReplyToAddresses=[sender] ) @mock.patch('ses.boto3') def test_send_email_raises(boto3): """Test send_email utility function raises on exceptions.""" mock_client = mock.MagicMock() boto3.client.return_value = mock_client mock_client.send_email.side_effect = Exception() with pytest.raises(Exception): ses.send_email('rcpt', 'sender', 'subject', 'message')