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:
Chris Hill-Scott
2016-08-11 10:29:01 +01:00
committed by GitHub
2 changed files with 25 additions and 7 deletions

View File

@@ -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 = 'Cant send to this recipient using a team-only API key'
else:
message = (
'Cant 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})

View File

@@ -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 [(
'Cant 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 [(
'Cant 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 [
'Cant 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 [
'Cant 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):