mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-04 02:11:11 -05:00
Take into consideration Firetext 000 code - no error. Also change logs from error to warning
This commit is contained in:
@@ -94,13 +94,13 @@ def _decide_permanent_temporary_failure(status, notification, code=None):
|
|||||||
# Firetext will send pending, then send either succes or fail.
|
# Firetext will send pending, then send either succes or fail.
|
||||||
# If we go from pending to failure we need to set failure type as temporary-failure,
|
# If we go from pending to failure we need to set failure type as temporary-failure,
|
||||||
# unless we get a detailed code from firetext. Then we should use that code to set status instead.
|
# unless we get a detailed code from firetext. Then we should use that code to set status instead.
|
||||||
if code:
|
if code and code != '000':
|
||||||
try:
|
try:
|
||||||
status, reason = get_message_status_and_reason_from_firetext_code(code)
|
status, reason = get_message_status_and_reason_from_firetext_code(code)
|
||||||
current_app.logger.info(f'Updating notification id {notification.id} to status {status}, reason: {reason}')
|
current_app.logger.info(f'Updating notification id {notification.id} to status {status}, reason: {reason}')
|
||||||
return status
|
return status
|
||||||
except KeyError:
|
except KeyError:
|
||||||
current_app.logger.error(f'Failure code {code} from Firetext not recognised')
|
current_app.logger.warning(f'Failure code {code} from Firetext not recognised')
|
||||||
if notification.status == NOTIFICATION_PENDING and status == NOTIFICATION_PERMANENT_FAILURE:
|
if notification.status == NOTIFICATION_PENDING and status == NOTIFICATION_PERMANENT_FAILURE:
|
||||||
status = NOTIFICATION_TEMPORARY_FAILURE
|
status = NOTIFICATION_TEMPORARY_FAILURE
|
||||||
return status
|
return status
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ def test_process_sms_client_response_updates_notification_status(
|
|||||||
('101', 'permanent-failure', 'Unknown Subscriber'),
|
('101', 'permanent-failure', 'Unknown Subscriber'),
|
||||||
('102', 'temporary-failure', 'Absent Subscriber'),
|
('102', 'temporary-failure', 'Absent Subscriber'),
|
||||||
(None, 'temporary-failure', None),
|
(None, 'temporary-failure', None),
|
||||||
|
('000', 'temporary-failure', None)
|
||||||
])
|
])
|
||||||
def test_process_sms_client_response_updates_notification_status_when_called_second_time(
|
def test_process_sms_client_response_updates_notification_status_when_called_second_time(
|
||||||
sample_notification,
|
sample_notification,
|
||||||
@@ -75,7 +76,7 @@ def test_process_sms_client_response_updates_notification_status_when_called_sec
|
|||||||
|
|
||||||
process_sms_client_response('1', str(sample_notification.id), 'Firetext', code)
|
process_sms_client_response('1', str(sample_notification.id), 'Firetext', code)
|
||||||
|
|
||||||
if code:
|
if code and code != '000':
|
||||||
message = f'Updating notification id {sample_notification.id} to status {expected_notification_status}, reason: {reason}' # noqa
|
message = f'Updating notification id {sample_notification.id} to status {expected_notification_status}, reason: {reason}' # noqa
|
||||||
mock_logger.assert_called_with(message)
|
mock_logger.assert_called_with(message)
|
||||||
|
|
||||||
@@ -86,7 +87,7 @@ def test_process_sms_client_response_updates_notification_status_when_code_unkno
|
|||||||
sample_notification,
|
sample_notification,
|
||||||
mocker,
|
mocker,
|
||||||
):
|
):
|
||||||
mock_logger = mocker.patch('app.celery.tasks.current_app.logger.error')
|
mock_logger = mocker.patch('app.celery.tasks.current_app.logger.warning')
|
||||||
sample_notification.status = 'sending'
|
sample_notification.status = 'sending'
|
||||||
process_sms_client_response('2', str(sample_notification.id), 'Firetext')
|
process_sms_client_response('2', str(sample_notification.id), 'Firetext')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user