Files
notifications-api/tests/app/service/test_schema.py
Kenneth Kehl 1ecb747c6d reformat
2023-08-29 14:54:30 -07:00

49 lines
1.5 KiB
Python

import json
import uuid
import pytest
from jsonschema import ValidationError
from app.schema_validation import validate
from app.service.service_callback_api_schema import update_service_callback_api_schema
def test_service_callback_api_schema_validates():
under_test = {
"url": "https://some_url.for_service",
"bearer_token": "something_ten_chars",
"updated_by_id": str(uuid.uuid4()),
}
validated = validate(under_test, update_service_callback_api_schema)
assert validated == under_test
@pytest.mark.parametrize("url", ["not a url", "https not a url", "http://valid.com"])
def test_service_callback_api_schema_errors_for_url_not_valid_url(url):
under_test = {
"url": url,
"bearer_token": "something_ten_chars",
"updated_by_id": str(uuid.uuid4()),
}
with pytest.raises(ValidationError) as e:
validate(under_test, update_service_callback_api_schema)
errors = json.loads(str(e.value)).get("errors")
assert len(errors) == 1
assert errors[0]["message"] == "url is not a valid https url"
def test_service_callback_api_schema_bearer_token_under_ten_char():
under_test = {
"url": "https://some_url.for_service",
"bearer_token": "shorty",
"updated_by_id": str(uuid.uuid4()),
}
with pytest.raises(ValidationError) as e:
validate(under_test, update_service_callback_api_schema)
errors = json.loads(str(e.value)).get("errors")
assert len(errors) == 1
assert errors[0]["message"] == "bearer_token shorty is too short"