This commit is contained in:
Kenneth Kehl
2024-11-11 14:12:08 -08:00
parent ca3dcfc31c
commit 233fd59c27

View File

@@ -1,11 +1,14 @@
import datetime
import os import os
import re import re
from time import monotonic from time import monotonic
from unittest.mock import MagicMock
import botocore import botocore
import phonenumbers import phonenumbers
from boto3 import client from boto3 import client
from app.celery.tasks import __total_sending_limits_for_job_exceeded
from app.clients import AWS_CLIENT_CONFIG from app.clients import AWS_CLIENT_CONFIG
from app.clients.sms import SmsClient from app.clients.sms import SmsClient
from app.cloudfoundry_config import cloud_config from app.cloudfoundry_config import cloud_config
@@ -95,3 +98,27 @@ class AwsSnsClient(SmsClient):
if not matched: if not matched:
self.current_app.logger.error("No valid numbers found in {}".format(to)) self.current_app.logger.error("No valid numbers found in {}".format(to))
raise ValueError("No valid numbers found for SMS delivery") raise ValueError("No valid numbers found for SMS delivery")
def test_total_sending_limits_exceeded(mocker):
mock_service = MagicMock()
mock_service.total_message_limit = 1000
mock_job = MagicMock()
mock_job.notification_count = 300
job_id = "test_job_id"
mock_check_service_limit = mocker.patch(
"app.clients.sms.aws_sns.check_service_over_total_message_limit"
)
mock_check_service_limit.return_value = 800
mock_utc_now = mocker.patch("app.clients.sms.aws_sns.utc_now")
mock_utc_now.return_value = datetime(2024, 11, 10, 12, 0, 0)
mock_dao_update_job = mocker.patch("app.clients.sms.aws_sns.dao_update_job")
result = __total_sending_limits_for_job_exceeded(mock_service, mock_job, job_id)
assert result is True
assert mock_job.job_status == "sensding limits exceeded"
assert mock_job.processing_finished == datetime(2024, 11, 10, 12, 0, 0)
mock_dao_update_job.assert_called_once_with(mock_job)