DRY-up overriding shortcode with sender

This avoids duplicating the logic when we add a new provider.
This commit is contained in:
Ben Thorner
2022-03-25 13:26:16 +00:00
parent 3b082477f0
commit 27ddc4501e
6 changed files with 39 additions and 52 deletions

View File

@@ -47,7 +47,7 @@ def test_try_send_sms_successful_returns_firetext_response(mocker, mock_firetext
with requests_mock.Mocker() as request_mock:
request_mock.post('https://example.com/firetext', json=response_dict, status_code=200)
response = mock_firetext_client.try_send_sms(to, content, reference, False)
response = mock_firetext_client.try_send_sms(to, content, reference, False, 'sender')
response_json = response.json()
assert response.status_code == 200
@@ -65,7 +65,7 @@ def test_try_send_sms_calls_firetext_correctly(mocker, mock_firetext_client):
with requests_mock.Mocker() as request_mock:
request_mock.post('https://example.com/firetext', json=response_dict, status_code=200)
mock_firetext_client.try_send_sms(to, content, reference, False)
mock_firetext_client.try_send_sms(to, content, reference, False, 'bar')
assert request_mock.call_count == 1
assert request_mock.request_history[0].url == 'https://example.com/firetext'
@@ -89,7 +89,7 @@ def test_try_send_sms_calls_firetext_correctly_for_international(mocker, mock_fi
with requests_mock.Mocker() as request_mock:
request_mock.post('https://example.com/firetext', json=response_dict, status_code=200)
mock_firetext_client.try_send_sms(to, content, reference, True)
mock_firetext_client.try_send_sms(to, content, reference, True, 'bar')
assert request_mock.call_count == 1
assert request_mock.request_history[0].url == 'https://example.com/firetext'
@@ -114,7 +114,7 @@ def test_try_send_sms_raises_if_firetext_rejects(mocker, mock_firetext_client):
with pytest.raises(SmsClientResponseException) as exc, requests_mock.Mocker() as request_mock:
request_mock.post('https://example.com/firetext', json=response_dict, status_code=200)
mock_firetext_client.try_send_sms(to, content, reference, False)
mock_firetext_client.try_send_sms(to, content, reference, False, 'sender')
assert exc.value.status_code == 200
assert '"description": "Some kind of error"' in exc.value.text
@@ -127,36 +127,19 @@ def test_try_send_sms_raises_if_firetext_rejects_with_unexpected_data(mocker, mo
with pytest.raises(SmsClientResponseException) as exc, requests_mock.Mocker() as request_mock:
request_mock.post('https://example.com/firetext', json=response_dict, status_code=400)
mock_firetext_client.try_send_sms(to, content, reference, False)
mock_firetext_client.try_send_sms(to, content, reference, False, 'sender')
assert exc.value.status_code == 400
assert exc.value.text == '{"something": "gone bad"}'
assert type(exc.value.exception) == HTTPError
def test_try_send_sms_override_configured_shortcode_with_sender(mocker, mock_firetext_client):
to = '+447234567890'
content = 'my message'
reference = 'my reference'
response_dict = {
'code': 0,
}
sender = 'fromservice'
with requests_mock.Mocker() as request_mock:
request_mock.post('https://example.com/firetext', json=response_dict, status_code=200)
mock_firetext_client.try_send_sms(to, content, reference, False, sender=sender)
request_args = parse_qs(request_mock.request_history[0].text)
assert request_args['from'][0] == 'fromservice'
def test_try_send_sms_raises_if_firetext_rejects_with_connect_timeout(rmock, mock_firetext_client):
to = content = reference = 'foo'
with pytest.raises(FiretextClientResponseException) as exc:
rmock.register_uri('POST', 'https://example.com/firetext', exc=ConnectTimeout)
mock_firetext_client.try_send_sms(to, content, reference, False)
mock_firetext_client.try_send_sms(to, content, reference, False, 'sender')
assert exc.value.status_code == 504
assert exc.value.text == 'Gateway Time-out'
@@ -167,7 +150,7 @@ def test_try_send_sms_raises_if_firetext_rejects_with_read_timeout(rmock, mock_f
with pytest.raises(FiretextClientResponseException) as exc:
rmock.register_uri('POST', 'https://example.com/firetext', exc=ReadTimeout)
mock_firetext_client.try_send_sms(to, content, reference, False)
mock_firetext_client.try_send_sms(to, content, reference, False, 'sender')
assert exc.value.status_code == 504
assert exc.value.text == 'Gateway Time-out'