1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
import pytest
from swagger_spec_validator.common import SwaggerValidationError
from swagger_spec_validator.validator20 import validate_parameters
@pytest.mark.parametrize(
"top_level_parameters",
[
{},
{
"Offset": {
"in": "query",
"name": "offset",
"type": "integer",
},
},
{
"AcceptedLanguage": {
"in": "header",
"name": "Accepted-Language",
"type": "string",
},
},
],
)
def test_valid_top_level_parameters(top_level_parameters):
validate_parameters(top_level_parameters, deref=lambda x: x)
@pytest.mark.parametrize(
"top_level_parameters, expected_exception_string",
[
[
{
"Offset": {
"in": "body",
"name": "body",
},
},
"Body parameter in `#/parameters/Offset` does not specify `schema`.",
],
[
{
"ParameterWithoutType": {
"in": "header",
"name": "a-random-parameter",
},
},
"Non-Body parameter in `#/parameters/ParameterWithoutType` does not specify `type`.",
],
[
{
"ListOfIntegers": {
"in": "header",
"name": "Accepted-Language",
"type": "array",
},
},
"Non-Body array parameter in `#/parameters/ListOfIntegers` does not specify `items`.",
],
],
)
def test_invalid_top_level_parameters(top_level_parameters, expected_exception_string):
with pytest.raises(SwaggerValidationError) as excinfo:
validate_parameters(top_level_parameters, deref=lambda x: x)
assert str(excinfo.value) == expected_exception_string
|