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
|
import functools
from swagger_spec_validator.validator20 import deref
from swagger_spec_validator.validator20 import get_collapsed_properties_type_mappings
from swagger_spec_validator.validator20 import validate_json
from tests.validator20.conftest import get_spec_json_and_url
def get_deref(spec_dict):
swagger_resolver = validate_json(
spec_dict,
"schemas/v2.0/schema.json",
)
return functools.partial(deref, resolver=swagger_resolver)
def test_get_collapsed_properties_type_mapping_simple_case():
file_path = "./tests/data/v2.0/test_polymorphic_specs/swagger.json"
swagger_dict, _ = get_spec_json_and_url(file_path)
(
required_parameters,
not_required_parameters,
) = get_collapsed_properties_type_mappings(
definition=swagger_dict["definitions"]["GenericPet"],
deref=get_deref(swagger_dict),
)
assert required_parameters == {"type": "string", "weight": "integer"}
assert not_required_parameters == {"name": "string"}
def test_get_collapsed_properties_type_mapping_allOf_add_required_property():
file_path = "./tests/data/v2.0/test_polymorphic_specs/swagger.json"
swagger_dict, _ = get_spec_json_and_url(file_path)
(
required_parameters,
not_required_parameters,
) = get_collapsed_properties_type_mappings(
definition=swagger_dict["definitions"]["Dog"],
deref=get_deref(swagger_dict),
)
assert required_parameters == {
"type": "string",
"weight": "integer",
"birth_date": "string",
}
assert not_required_parameters == {"name": "string"}
def test_get_collapsed_properties_type_mapping_allOf_add_not_required_property():
file_path = "./tests/data/v2.0/test_polymorphic_specs/swagger.json"
swagger_dict, _ = get_spec_json_and_url(file_path)
(
required_parameters,
not_required_parameters,
) = get_collapsed_properties_type_mappings(
definition=swagger_dict["definitions"]["Cat"],
deref=get_deref(swagger_dict),
)
assert required_parameters == {"type": "string", "weight": "integer"}
assert not_required_parameters == {"name": "string", "color": "string"}
|