mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-19 14:08:47 -04:00
Log detailed sms delivery status for mmg from process_sms_client_response task.
Also log detailed delivery status for firetext in the same place in addition to it being logged from notifications_dao. Logging detailed delivery statuses will help us see why messages fail to deliver. In the future we could persist detailed delivery status in the database.
This commit is contained in:
@@ -8,19 +8,25 @@ import requests_mock
|
||||
from app.clients.sms.firetext import get_firetext_responses, SmsClientResponseException, FiretextClientResponseException
|
||||
|
||||
|
||||
def test_should_return_correct_details_for_delivery():
|
||||
get_firetext_responses('0') == 'delivered'
|
||||
@pytest.mark.parametrize('code, result', [
|
||||
(None, ('delivered', None)), ('000', ('delivered', None))
|
||||
])
|
||||
def test_get_firetext_responses_should_return_correct_details_for_delivery(code, result):
|
||||
assert get_firetext_responses('0', code) == result
|
||||
|
||||
|
||||
def test_should_return_correct_details_for_bounced():
|
||||
get_firetext_responses('1') == 'permanent-failure'
|
||||
@pytest.mark.parametrize('code, result', [
|
||||
(None, ('permanent-failure', None)), ('401', ('permanent-failure', 'Message Rejected'))
|
||||
])
|
||||
def test_get_firetext_responses_should_return_correct_details_for_bounced(code, result):
|
||||
assert get_firetext_responses('1', code) == result
|
||||
|
||||
|
||||
def test_should_return_correct_details_for_complaint():
|
||||
get_firetext_responses('2') == 'pending'
|
||||
def test_get_firetext_responses_should_return_correct_details_for_complaint():
|
||||
assert get_firetext_responses('2') == ('pending', None)
|
||||
|
||||
|
||||
def test_should_be_none_if_unrecognised_status_code():
|
||||
def test_get_firetext_responses_should_be_none_if_unrecognised_status_code():
|
||||
with pytest.raises(KeyError) as e:
|
||||
get_firetext_responses('99')
|
||||
assert '99' in str(e.value)
|
||||
|
||||
@@ -9,20 +9,31 @@ from app.clients.sms import SmsClientResponseException
|
||||
from app.clients.sms.mmg import get_mmg_responses, MMGClientResponseException
|
||||
|
||||
|
||||
def test_should_return_correct_details_for_delivery():
|
||||
get_mmg_responses('3') == 'delivered'
|
||||
@pytest.mark.parametrize('substatus, result', [
|
||||
(None, ('delivered', None)), ('5', ('delivered', 'Delivered to handset'))
|
||||
])
|
||||
def test_get_mmg_responses_should_return_correct_details_for_delivery(substatus, result):
|
||||
assert get_mmg_responses('3', substatus) == result
|
||||
|
||||
|
||||
def test_should_return_correct_details_for_temporary_failure():
|
||||
get_mmg_responses('4') == 'temporary-failure'
|
||||
@pytest.mark.parametrize('substatus, result', [
|
||||
(None, ('temporary-failure', None)), ('15', ('temporary-failure', 'Expired'))
|
||||
])
|
||||
def test_get_mmg_responses_should_return_correct_details_for_temporary_failure(substatus, result):
|
||||
assert get_mmg_responses('4', substatus) == result
|
||||
|
||||
|
||||
@pytest.mark.parametrize('status', ['5', '2'])
|
||||
def test_should_return_correct_details_for_bounced(status):
|
||||
get_mmg_responses(status) == 'permanent-failure'
|
||||
@pytest.mark.parametrize('status, substatus, result', [
|
||||
('2', None, ('permanent-failure', None)),
|
||||
('2', '12', ('permanent-failure', "Illegal equipment")),
|
||||
('5', None, ('permanent-failure', None)),
|
||||
('5', '20', ('permanent-failure', 'Rejected by anti-flooding mechanism'))
|
||||
])
|
||||
def test_get_mmg_responses_should_return_correct_details_for_bounced(status, substatus, result):
|
||||
assert get_mmg_responses(status, substatus) == result
|
||||
|
||||
|
||||
def test_should_be_raise_if_unrecognised_status_code():
|
||||
def test_get_mmg_responses_should_be_raise_if_unrecognised_status_code():
|
||||
with pytest.raises(KeyError) as e:
|
||||
get_mmg_responses('99')
|
||||
assert '99' in str(e.value)
|
||||
|
||||
Reference in New Issue
Block a user