Take into consideration Firetext 000 code - no error. Also change logs from error to warning

This commit is contained in:
Pea Tyczynska
2020-04-21 12:06:28 +01:00
parent 5011b5b8f5
commit 385d249787
2 changed files with 5 additions and 4 deletions

View File

@@ -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

View File

@@ -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')