eventcally/tests/api/test___init__.py
2021-02-09 11:12:15 +01:00

84 lines
2.0 KiB
Python

import pytest
from project.api import RestApi
def test_handle_error_unique(app):
from project.utils import make_unique_violation
error = make_unique_violation()
api = RestApi(app)
(data, code) = api.handle_error(error)
assert code == 400
assert data["name"] == "Unique Violation"
def test_handle_error_checkViolation(app):
from project.utils import make_check_violation
error = make_check_violation()
api = RestApi(app)
(data, code) = api.handle_error(error)
assert code == 400
assert data["name"] == "Check Violation"
def test_handle_error_integrity(app):
from project.utils import make_integrity_error
error = make_integrity_error("custom")
api = RestApi(app)
(data, code) = api.handle_error(error)
assert code == 400
assert data["name"] == "Integrity Error"
def test_handle_error_httpException(app):
from werkzeug.exceptions import InternalServerError
error = InternalServerError()
api = RestApi(app)
(data, code) = api.handle_error(error)
assert code == 500
def test_handle_error_unprocessableEntity(app):
from werkzeug.exceptions import UnprocessableEntity
from marshmallow import ValidationError
args = {"name": ["Required"]}
validation_error = ValidationError(args)
error = UnprocessableEntity()
error.exc = validation_error
api = RestApi(app)
(data, code) = api.handle_error(error)
assert code == 422
assert data["errors"][0]["field"] == "name"
assert data["errors"][0]["message"] == "Required"
def test_handle_error_validationError(app):
from marshmallow import ValidationError
args = {"name": ["Required"]}
validation_error = ValidationError(args)
api = RestApi(app)
(data, code) = api.handle_error(validation_error)
assert code == 422
assert data["errors"][0]["field"] == "name"
assert data["errors"][0]["message"] == "Required"
def test_handle_error_unspecificRaises(app):
error = Exception()
api = RestApi(app)
with pytest.raises(Exception):
api.handle_error(error)