convert value to type before running validators

This commit is contained in:
Henning Jacobs
2015-09-04 11:35:10 +02:00
parent 44fc513eaa
commit 2faaa903ef
2 changed files with 9 additions and 1 deletions

View File

@@ -27,7 +27,9 @@ def test_validate_maximum():
def test_parameter_validator(monkeypatch):
request = MagicMock(name='request')
request.args = {}
request.headers = {}
request.params = {}
app = MagicMock(name='app')
app.response_class = lambda a, mimetype, status: json.loads(a)['detail']
monkeypatch.setattr('flask.request', request)
@@ -38,6 +40,7 @@ def test_parameter_validator(monkeypatch):
params = [{'name': 'p1', 'in': 'path', 'type': 'integer', 'required': True},
{'name': 'h1', 'in': 'header', 'type': 'string', 'enum': ['a', 'b']},
{'name': 'q1', 'in': 'query', 'type': 'integer', 'maximum': 3},
{'name': 'a1', 'in': 'query', 'type': 'array', 'items': {'type': 'integer', 'minimum': 0}}]
validator = ParameterValidator(params)
handler = validator(orig_handler)
@@ -48,6 +51,11 @@ def test_parameter_validator(monkeypatch):
assert handler(p1='foo') == "Wrong type, expected 'integer' for path parameter 'p1'"
assert handler(p1='1.2') == "Wrong type, expected 'integer' for path parameter 'p1'"
request.args = {'q1': '4'}
assert handler(p1=1) == 'Invalid value, must be at most 3'
request.args = {'q1': '3'}
assert handler(p1=1) == 'OK'
request.args = {'a1': '1,2'}
assert handler(p1=1) == "OK"
request.args = {'a1': '1,a'}