Update the error message when a service does not have permission to send a notification type.

This commit is contained in:
Rebecca Law
2018-11-20 11:01:48 +00:00
parent 07078e804e
commit d0cbdce6c4
4 changed files with 11 additions and 7 deletions

View File

@@ -84,7 +84,7 @@ def service_has_permission(notify_type, permissions):
def check_service_has_permission(notify_type, permissions): def check_service_has_permission(notify_type, permissions):
if not service_has_permission(notify_type, permissions): if not service_has_permission(notify_type, permissions):
raise BadRequestError(message="Cannot send {}".format( raise BadRequestError(message="Service is not allowed to send {}".format(
get_public_notify_type_text(notify_type, plural=True))) get_public_notify_type_text(notify_type, plural=True)))

View File

@@ -87,10 +87,14 @@ def cache_key_for_service_template_usage_per_day(service_id, datetime):
def get_public_notify_type_text(notify_type, plural=False): def get_public_notify_type_text(notify_type, plural=False):
from app.models import SMS_TYPE from app.models import (SMS_TYPE, UPLOAD_DOCUMENT, PRECOMPILED_LETTER)
notify_type_text = notify_type notify_type_text = notify_type
if notify_type == SMS_TYPE: if notify_type == SMS_TYPE:
notify_type_text = 'text message' notify_type_text = 'text message'
if notify_type == UPLOAD_DOCUMENT:
notify_type_text = 'document'
if notify_type == PRECOMPILED_LETTER:
notify_type_text = 'precompiled letter'
return '{}{}'.format(notify_type_text, 's' if plural else '') return '{}{}'.format(notify_type_text, 's' if plural else '')

View File

@@ -314,7 +314,7 @@ def test_post_letter_notification_returns_403_if_not_allowed_to_send_notificatio
error_json = letter_request(client, data, service_id=service.id, _expected_status=400) error_json = letter_request(client, data, service_id=service.id, _expected_status=400)
assert error_json['status_code'] == 400 assert error_json['status_code'] == 400
assert error_json['errors'] == [ assert error_json['errors'] == [
{'error': 'BadRequestError', 'message': 'Cannot send letters'} {'error': 'BadRequestError', 'message': 'Service is not allowed to send letters'}
] ]
@@ -438,7 +438,7 @@ def test_post_precompiled_letter_requires_permission(client, sample_service, not
assert response.status_code == 400, response.get_data(as_text=True) assert response.status_code == 400, response.get_data(as_text=True)
resp_json = json.loads(response.get_data(as_text=True)) resp_json = json.loads(response.get_data(as_text=True))
assert resp_json['errors'][0]['message'] == 'Cannot send precompiled_letters' assert resp_json['errors'][0]['message'] == 'Service is not allowed to send precompiled letters'
def test_post_precompiled_letter_with_invalid_base64(client, notify_user, mocker): def test_post_precompiled_letter_with_invalid_base64(client, notify_user, mocker):

View File

@@ -512,8 +512,8 @@ def test_post_sms_notification_with_archived_reply_to_id_returns_400(client, sam
@pytest.mark.parametrize('recipient,label,template_factory,expected_error', [ @pytest.mark.parametrize('recipient,label,template_factory,expected_error', [
('07700 900000', 'phone_number', sample_template_without_sms_permission, 'Cannot send text messages'), ('07700 900000', 'phone_number', sample_template_without_sms_permission, 'text messages'),
('someone@test.com', 'email_address', sample_template_without_email_permission, 'Cannot send emails')]) ('someone@test.com', 'email_address', sample_template_without_email_permission, 'emails')])
def test_post_sms_notification_returns_400_if_not_allowed_to_send_notification( def test_post_sms_notification_returns_400_if_not_allowed_to_send_notification(
client, template_factory, recipient, label, expected_error, notify_db, notify_db_session): client, template_factory, recipient, label, expected_error, notify_db, notify_db_session):
sample_template_without_permission = template_factory(notify_db, notify_db_session) sample_template_without_permission = template_factory(notify_db, notify_db_session)
@@ -534,7 +534,7 @@ def test_post_sms_notification_returns_400_if_not_allowed_to_send_notification(
error_json = json.loads(response.get_data(as_text=True)) error_json = json.loads(response.get_data(as_text=True))
assert error_json['status_code'] == 400 assert error_json['status_code'] == 400
assert error_json['errors'] == [ assert error_json['errors'] == [
{"error": "BadRequestError", "message": expected_error} {"error": "BadRequestError", "message": "Service is not allowed to send {}".format(expected_error)}
] ]