deb-python-falcon/tests/test_validators.py

52 lines
1019 B
Python

import sys
import pytest
import falcon
from falcon.media.validators import jsonschema
skip_py26 = pytest.mark.skipif(
sys.version_info[:2] == (2, 6),
reason='Minimum Python version for this feature is 2.7.x'
)
basic_schema = {
'type': 'object',
'properies': {
'message': {
'type': 'string',
},
},
'required': ['message'],
}
class SampleResource(object):
@jsonschema.validate(basic_schema)
def on_get(self, req, resp):
assert req.media is not None
class RequestStub(object):
media = {'message': 'something'}
@skip_py26
def test_jsonschema_validation_success():
req = RequestStub()
res = SampleResource()
assert res.on_get(req, None) is None
@skip_py26
def test_jsonschema_validation_failure():
req = RequestStub()
req.media = {}
res = SampleResource()
with pytest.raises(falcon.HTTPBadRequest) as err:
res.on_get(req, None)
assert err.value.description == '\'message\' is a required property'