mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-28 05:50:27 -05:00
Merge pull request #600 from alphagov/better-error-messages
Give better error messages when using the API to send to recipients not in your team
This commit is contained in:
@@ -270,9 +270,17 @@ def send_notification(notification_type):
|
||||
[user.mobile_number, user.email_address] for user in service.users
|
||||
)
|
||||
):
|
||||
message = 'Invalid {} for restricted service'.format(first_column_heading[notification_type])
|
||||
errors = {'to': [message]}
|
||||
raise InvalidRequest(errors, status_code=400)
|
||||
if (api_user.key_type == KEY_TYPE_TEAM):
|
||||
message = 'Can’t send to this recipient using a team-only API key'
|
||||
else:
|
||||
message = (
|
||||
'Can’t send to this recipient when service is in trial mode '
|
||||
'– see https://www.notifications.service.gov.uk/trial-mode'
|
||||
)
|
||||
raise InvalidRequest(
|
||||
{'to': [message]},
|
||||
status_code=400
|
||||
)
|
||||
|
||||
notification_id = create_uuid()
|
||||
notification.update({"template_version": template.version})
|
||||
|
||||
@@ -227,7 +227,10 @@ def test_should_not_send_sms_if_restricted_and_not_a_service_user(notify_api, sa
|
||||
app.celery.tasks.send_sms.apply_async.assert_not_called()
|
||||
|
||||
assert response.status_code == 400
|
||||
assert 'Invalid phone number for restricted service' in json_resp['message']['to']
|
||||
assert [(
|
||||
'Can’t send to this recipient when service is in trial mode '
|
||||
'– see https://www.notifications.service.gov.uk/trial-mode'
|
||||
)] == json_resp['message']['to']
|
||||
|
||||
|
||||
def test_should_send_sms_if_restricted_and_a_service_user(notify_api, sample_template, mocker):
|
||||
@@ -519,7 +522,10 @@ def test_should_not_send_email_if_restricted_and_not_a_service_user(notify_api,
|
||||
app.celery.tasks.send_email.apply_async.assert_not_called()
|
||||
|
||||
assert response.status_code == 400
|
||||
assert 'Invalid email address for restricted service' in json_resp['message']['to']
|
||||
assert [(
|
||||
'Can’t send to this recipient when service is in trial mode – see '
|
||||
'https://www.notifications.service.gov.uk/trial-mode'
|
||||
)] == json_resp['message']['to']
|
||||
|
||||
|
||||
@freeze_time("2016-01-01 11:09:00.061258")
|
||||
@@ -698,7 +704,9 @@ def test_should_not_send_email_if_team_api_key_and_not_a_service_user(notify_api
|
||||
app.celery.tasks.send_email.apply_async.assert_not_called()
|
||||
|
||||
assert response.status_code == 400
|
||||
assert 'Invalid email address for restricted service' in json_resp['message']['to']
|
||||
assert [
|
||||
'Can’t send to this recipient using a team-only API key'
|
||||
] == json_resp['message']['to']
|
||||
|
||||
|
||||
def test_should_not_send_sms_if_team_api_key_and_not_a_service_user(notify_api, sample_template, mocker):
|
||||
@@ -721,7 +729,9 @@ def test_should_not_send_sms_if_team_api_key_and_not_a_service_user(notify_api,
|
||||
app.celery.tasks.send_sms.apply_async.assert_not_called()
|
||||
|
||||
assert response.status_code == 400
|
||||
assert 'Invalid phone number for restricted service' in json_resp['message']['to']
|
||||
assert [
|
||||
'Can’t send to this recipient using a team-only API key'
|
||||
] == json_resp['message']['to']
|
||||
|
||||
|
||||
def test_should_send_email_if_team_api_key_and_a_service_user(notify_api, sample_email_template, mocker):
|
||||
|
||||
Reference in New Issue
Block a user