Skip to content

Commit 3d23f17

Browse files
author
Gerhard Weis
committed
add test to check parameter uniqueness is handled correctly in validator
1 parent d490d57 commit 3d23f17

File tree

1 file changed

+24
-2
lines changed

1 file changed

+24
-2
lines changed

tests/integration/test_validators.py

+24-2
Original file line numberDiff line numberDiff line change
@@ -306,8 +306,7 @@ def test_request_valid_param(self, validator):
306306
assert result.parameters == {'query': {'resId': 10}}
307307

308308
def test_request_override_param(self, spec_dict):
309-
# override parameter path parameter on operation
310-
# (name and in property must match)
309+
# override path parameter on operation
311310
spec_dict["paths"]["/resource"]["get"]["parameters"] = [
312311
{
313312
# full valid parameter object required
@@ -327,6 +326,29 @@ def test_request_override_param(self, spec_dict):
327326
assert result.body is None
328327
assert result.parameters == {}
329328

329+
def test_request_override_param_uniqueness(self, spec_dict):
330+
# add parameter on operation with same name as on path but
331+
# different location
332+
spec_dict["paths"]["/resource"]["get"]["parameters"] = [
333+
{
334+
# full valid parameter object required
335+
"name": "resId",
336+
"in": "header",
337+
"required": False,
338+
"schema": {
339+
"type": "integer",
340+
},
341+
}
342+
]
343+
validator = RequestValidator(create_spec(spec_dict))
344+
request = MockRequest('http://example.com', 'get', '/resource')
345+
result = validator.validate(request)
346+
347+
assert len(result.errors) == 1
348+
assert type(result.errors[0]) == MissingRequiredParameter
349+
assert result.body is None
350+
assert result.parameters == {}
351+
330352

331353
class TestResponseValidator(object):
332354

0 commit comments

Comments
 (0)