Files
notifications-api/tests/app/clients/test_aws_sns.py

44 lines
1.5 KiB
Python
Raw Permalink Normal View History

2022-06-17 11:16:23 -07:00
import pytest
2025-10-06 08:08:29 -07:00
from flask import current_app
2025-10-06 07:32:35 -07:00
from app import get_aws_sns_client
2022-06-17 11:16:23 -07:00
def test_send_sms_successful_returns_aws_sns_response(notify_api, mocker):
2025-10-06 07:59:39 -07:00
2025-04-03 08:16:33 -07:00
to = "16135555555"
2023-08-29 14:54:30 -07:00
content = reference = "foo"
2022-06-17 11:16:23 -07:00
with notify_api.app_context():
2025-10-06 07:59:39 -07:00
aws_sns_client = get_aws_sns_client()
2025-10-06 08:08:29 -07:00
aws_sns_client.init_app(current_app)
2025-10-06 07:59:39 -07:00
boto_mock = mocker.patch.object(aws_sns_client, "_client", create=True)
2022-06-17 11:16:23 -07:00
aws_sns_client.send_sms(to, content, reference)
2025-10-06 07:59:39 -07:00
boto_mock.publish.assert_called_once_with(
PhoneNumber="+16135555555",
Message=content,
MessageAttributes={
"AWS.SNS.SMS.SMSType": {
"DataType": "String",
"StringValue": "Transactional",
},
"AWS.MM.SMS.OriginationNumber": {
"DataType": "String",
"StringValue": "+18556438890",
},
2023-08-29 14:54:30 -07:00
},
2025-10-06 07:59:39 -07:00
)
2022-06-17 11:16:23 -07:00
2023-08-29 14:54:30 -07:00
def test_send_sms_returns_raises_error_if_there_is_no_valid_number_is_found(
notify_api, mocker
):
2025-10-06 07:59:39 -07:00
with notify_api.app_context():
aws_sns_client = get_aws_sns_client()
2025-10-06 08:08:29 -07:00
aws_sns_client.init_app(current_app)
2025-10-06 07:59:39 -07:00
mocker.patch.object(aws_sns_client, "_client", create=True)
to = ""
content = reference = "foo"
with pytest.raises(ValueError) as excinfo:
aws_sns_client.send_sms(to, content, reference)
assert "No valid numbers found for SMS delivery" in str(excinfo.value)