Split header by comma (#1279)

* Split header by comma

When specifying array of enum strings in header,
it needs to be split according to commas.

* Add test

Add test where value is array of enums,
and injected as header
This commit is contained in:
Noam Goodman
2020-08-10 09:51:42 +03:00
committed by GitHub
parent 8830d56841
commit 1ed14fbde5
2 changed files with 10 additions and 0 deletions

View File

@@ -60,6 +60,8 @@ def coerce_type(param, value, parameter_type, parameter_name=None):
parameter_name = parameter_name if parameter_name else param.get('name')
if param_type == "array":
converted_params = []
if parameter_type == "header":
value = value.split(',')
for v in value:
try:
converted = make_type(v, param_schema["items"]["type"])

View File

@@ -48,6 +48,14 @@ def test_get_explodable_object_parameter():
'required': True, 'name': 'foo', 'style': 'deepObject', 'explode': True}
result = ParameterValidator.validate_parameter('query', {'bar': 1}, param)
assert result is None
def test_get_valid_parameter_with_enum_array_header():
value = 'VALUE1,VALUE2'
param = {'schema': {'type': 'array', 'items': {'type': 'string', 'enum': ['VALUE1', 'VALUE2']}},
'name': 'test_header_param'}
result = ParameterValidator.validate_parameter('header', value, param)
assert result is None
def test_invalid_type(monkeypatch):