File: test_schema_parameters.py

package info (click to toggle)
python-openapi-core 0.19.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,008 kB
  • sloc: python: 18,868; makefile: 47
file content (123 lines) | stat: -rw-r--r-- 3,143 bytes parent folder | download
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import pytest
from jsonschema_path import SchemaPath

from openapi_core.schema.parameters import get_explode
from openapi_core.schema.parameters import get_style


class TestGetStyle:
    @pytest.mark.parametrize(
        "location,expected",
        [
            ("query", "form"),
            ("path", "simple"),
            ("header", "simple"),
            ("cookie", "form"),
        ],
    )
    def test_defaults(self, location, expected):
        spec = {
            "name": "default",
            "in": location,
        }
        param = SchemaPath.from_dict(spec)
        result = get_style(param)

        assert result == expected

    @pytest.mark.parametrize(
        "style,location",
        [
            ("matrix", "path"),
            ("label", "apth"),
            ("form", "query"),
            ("form", "cookie"),
            ("simple", "path"),
            ("simple", "header"),
            ("spaceDelimited", "query"),
            ("pipeDelimited", "query"),
            ("deepObject", "query"),
        ],
    )
    def test_defined(self, style, location):
        spec = {
            "name": "default",
            "in": location,
            "style": style,
        }
        param = SchemaPath.from_dict(spec)
        result = get_style(param)

        assert result == style


class TestGetExplode:
    @pytest.mark.parametrize(
        "style,location",
        [
            ("matrix", "path"),
            ("label", "path"),
            ("simple", "path"),
            ("spaceDelimited", "query"),
            ("pipeDelimited", "query"),
            ("deepObject", "query"),
        ],
    )
    def test_defaults_false(self, style, location):
        spec = {
            "name": "default",
            "in": location,
            "style": style,
        }
        param = SchemaPath.from_dict(spec)
        result = get_explode(param)

        assert result is False

    @pytest.mark.parametrize("location", ["query", "cookie"])
    def test_defaults_true(self, location):
        spec = {
            "name": "default",
            "in": location,
            "style": "form",
        }
        param = SchemaPath.from_dict(spec)
        result = get_explode(param)

        assert result is True

    @pytest.mark.parametrize("location", ["path", "query", "cookie", "header"])
    @pytest.mark.parametrize(
        "style",
        [
            "matrix",
            "label",
            "form",
            "form",
            "simple",
            "spaceDelimited",
            "pipeDelimited",
            "deepObject",
        ],
    )
    @pytest.mark.parametrize(
        "schema_type",
        [
            "string",
            "array" "object",
        ],
    )
    @pytest.mark.parametrize("explode", [False, True])
    def test_defined(self, location, style, schema_type, explode):
        spec = {
            "name": "default",
            "in": location,
            "explode": explode,
            "schema": {
                "type": schema_type,
            },
        }
        param = SchemaPath.from_dict(spec)
        result = get_explode(param)

        assert result == explode