File: get_collapsed_properties_map_test.py

package info (click to toggle)
swagger-spec-validator 3.0.4-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 696 kB
  • sloc: python: 2,321; makefile: 28; sh: 2
file content (63 lines) | stat: -rw-r--r-- 2,203 bytes parent folder | download | duplicates (3)
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"}