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:
Pea Tyczynska
2020-05-27 18:03:55 +01:00
parent 5462087f21
commit a4b942cf6c
8 changed files with 98 additions and 36 deletions

View File

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