mirror of
https://github.com/GSA/notifications-api.git
synced 2026-07-27 11:19:56 -04:00
Use json schema to validate post request to send PDF letter
This approach was suggested as the way to do validation things on Notify.
This commit is contained in:
@@ -2297,6 +2297,23 @@ def test_create_pdf_letter(mocker, sample_service_full_permissions, client, fake
|
||||
assert json_resp == {'id': fake_uuid}
|
||||
|
||||
|
||||
def test_create_pdf_letter_validates_against_json_schema(sample_service_full_permissions, client):
|
||||
response = client.post(
|
||||
url_for('service.create_pdf_letter', service_id=sample_service_full_permissions.id),
|
||||
data=json.dumps({}),
|
||||
headers=[('Content-Type', 'application/json'), create_authorization_header()]
|
||||
)
|
||||
json_resp = json.loads(response.get_data(as_text=True))
|
||||
|
||||
assert response.status_code == 400
|
||||
assert json_resp['errors'] == [
|
||||
{'error': 'ValidationError', 'message': 'postage is a required property'},
|
||||
{'error': 'ValidationError', 'message': 'filename is a required property'},
|
||||
{'error': 'ValidationError', 'message': 'created_by is a required property'},
|
||||
{'error': 'ValidationError', 'message': 'file_id is a required property'}
|
||||
]
|
||||
|
||||
|
||||
def test_get_notification_for_service_includes_template_redacted(admin_request, sample_notification):
|
||||
resp = admin_request.get(
|
||||
'service.get_notification_for_service',
|
||||
|
||||
@@ -51,26 +51,6 @@ def test_send_pdf_letter_notification_validates_created_by(
|
||||
send_pdf_letter_notification(sample_service_full_permissions.id, post_data)
|
||||
|
||||
|
||||
def test_send_pdf_letter_notification_validates_postage(
|
||||
sample_service_full_permissions, fake_uuid, notify_user
|
||||
):
|
||||
user = sample_service_full_permissions.users[0]
|
||||
post_data = {'filename': 'valid.pdf', 'created_by': user.id, 'file_id': fake_uuid, 'postage': 'third'}
|
||||
|
||||
with pytest.raises(BadRequestError):
|
||||
send_pdf_letter_notification(sample_service_full_permissions.id, post_data)
|
||||
|
||||
|
||||
def test_send_pdf_letter_notification_requires_postage(
|
||||
sample_service_full_permissions, fake_uuid, notify_user
|
||||
):
|
||||
user = sample_service_full_permissions.users[0]
|
||||
post_data = {'filename': 'valid.pdf', 'created_by': user.id, 'file_id': fake_uuid}
|
||||
|
||||
with pytest.raises(BadRequestError):
|
||||
send_pdf_letter_notification(sample_service_full_permissions.id, post_data)
|
||||
|
||||
|
||||
def test_send_pdf_letter_notification_raises_error_if_service_in_trial_mode(
|
||||
mocker,
|
||||
sample_service_full_permissions,
|
||||
|
||||
Reference in New Issue
Block a user