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 re
from time import monotonic
from unittest.mock import MagicMock
import botocore
import phonenumbers
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.sms import SmsClient
from app.cloudfoundry_config import cloud_config
@@ -95,3 +98,27 @@ class AwsSnsClient(SmsClient):
if not matched:
self.current_app.logger.error("No valid numbers found in {}".format(to))
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)