18
18
19
19
20
20
class TestValidateRequest :
21
- def test_spec_not_detected (self ):
22
- spec = {}
21
+ def test_spec_not_detected (self , spec_invalid ):
23
22
request = mock .Mock (spec = Request )
24
23
25
24
with pytest .raises (ValidatorDetectError ):
26
- validate_request (request , spec = spec )
25
+ validate_request (request , spec = spec_invalid )
27
26
28
- def test_request_type_error (self ):
29
- spec = {"openapi" : "3.1" }
27
+ def test_request_type_error (self , spec_v31 ):
30
28
request = mock .sentinel .request
31
29
30
+ with pytest .raises (TypeError ):
31
+ validate_request (request , spec = spec_v31 )
32
+
33
+ def test_spec_type_error (self ):
34
+ request = mock .Mock (spec = Request )
35
+ spec = mock .sentinel .spec
36
+
32
37
with pytest .raises (TypeError ):
33
38
validate_request (request , spec = spec )
34
39
35
40
@mock .patch (
36
41
"openapi_core.validation.request.validators.RequestValidator.validate" ,
37
42
)
38
- def test_request (self , mock_validate ):
39
- spec = {"openapi" : "3.1" }
43
+ def test_request (self , mock_validate , spec_v31 ):
44
+ request = mock .Mock (spec = Request )
45
+
46
+ result = validate_request (request , spec = spec_v31 )
47
+
48
+ assert result == mock_validate .return_value
49
+ mock_validate .validate .aasert_called_once_with (request )
50
+
51
+ @mock .patch (
52
+ "openapi_core.validation.request.validators.RequestValidator.validate" ,
53
+ )
54
+ def test_spec_as_first_arg_deprecated (self , mock_validate , spec_v31 ):
40
55
request = mock .Mock (spec = Request )
41
56
42
- result = validate_request (request , spec = spec )
57
+ with pytest .warns (DeprecationWarning ):
58
+ result = validate_request (spec_v31 , request )
43
59
44
60
assert result == mock_validate .return_value
45
61
mock_validate .validate .aasert_called_once_with (request )
46
62
47
63
@mock .patch (
48
64
"openapi_core.validation.request.validators.RequestValidator.validate" ,
49
65
)
50
- def test_request_error (self , mock_validate ):
51
- spec = {"openapi" : "3.1" }
66
+ def test_request_error (self , mock_validate , spec_v31 ):
52
67
request = mock .Mock (spec = Request )
53
68
mock_validate .return_value = ResultMock (error_to_raise = ValueError )
54
69
55
70
with pytest .raises (ValueError ):
56
- validate_request (request , spec = spec )
71
+ validate_request (request , spec = spec_v31 )
57
72
58
73
mock_validate .aasert_called_once_with (request )
59
74
60
- def test_validator (self ):
61
- spec = mock .sentinel .spec
75
+ def test_validator (self , spec_v31 ):
62
76
request = mock .Mock (spec = Request )
63
77
validator = mock .Mock (spec = RequestValidator )
64
78
65
79
with pytest .warns (DeprecationWarning ):
66
- result = validate_request (request , spec = spec , validator = validator )
80
+ result = validate_request (
81
+ request , spec = spec_v31 , validator = validator
82
+ )
67
83
68
84
assert result == validator .validate .return_value
69
85
validator .validate .aasert_called_once_with (request )
70
86
71
- def test_validator_cls (self ):
72
- spec = mock .sentinel .spec
87
+ def test_validator_cls (self , spec_v31 ):
73
88
request = mock .Mock (spec = Request )
74
89
validator_cls = mock .Mock (spec = RequestValidator )
75
90
76
- result = validate_request (request , spec = spec , cls = validator_cls )
91
+ result = validate_request (request , spec = spec_v31 , cls = validator_cls )
77
92
78
93
assert result == validator_cls ().validate .return_value
79
94
validator_cls ().validate .aasert_called_once_with (request )
@@ -82,82 +97,95 @@ def test_validator_cls(self):
82
97
"openapi_core.validation.request.validators.WebhookRequestValidator."
83
98
"validate" ,
84
99
)
85
- def test_webhook_request (self , mock_validate ):
86
- spec = {"openapi" : "3.1" }
100
+ def test_webhook_request (self , mock_validate , spec_v31 ):
87
101
request = mock .Mock (spec = WebhookRequest )
88
102
89
- result = validate_request (request , spec = spec )
103
+ result = validate_request (request , spec = spec_v31 )
90
104
91
105
assert result == mock_validate .return_value
92
106
mock_validate .validate .aasert_called_once_with (request )
93
107
94
- def test_webhook_request_validator_not_found (self ):
95
- spec = {"openapi" : "3.0" }
108
+ def test_webhook_request_validator_not_found (self , spec_v30 ):
96
109
request = mock .Mock (spec = WebhookRequest )
97
110
98
111
with pytest .raises (ValidatorDetectError ):
99
- validate_request (request , spec = spec )
112
+ validate_request (request , spec = spec_v30 )
100
113
101
114
@mock .patch (
102
115
"openapi_core.validation.request.validators.WebhookRequestValidator."
103
116
"validate" ,
104
117
)
105
- def test_webhook_request_error (self , mock_validate ):
106
- spec = {"openapi" : "3.1" }
118
+ def test_webhook_request_error (self , mock_validate , spec_v31 ):
107
119
request = mock .Mock (spec = WebhookRequest )
108
120
mock_validate .return_value = ResultMock (error_to_raise = ValueError )
109
121
110
122
with pytest .raises (ValueError ):
111
- validate_request (request , spec = spec )
123
+ validate_request (request , spec = spec_v31 )
112
124
113
125
mock_validate .aasert_called_once_with (request )
114
126
115
- def test_webhook_validator_cls (self ):
116
- spec = mock .sentinel .spec
127
+ def test_webhook_validator_cls (self , spec_v31 ):
117
128
request = mock .Mock (spec = WebhookRequest )
118
129
validator_cls = mock .Mock (spec = WebhookRequestValidator )
119
130
120
- result = validate_request (request , spec = spec , cls = validator_cls )
131
+ result = validate_request (request , spec = spec_v31 , cls = validator_cls )
121
132
122
133
assert result == validator_cls ().validate .return_value
123
134
validator_cls ().validate .aasert_called_once_with (request )
124
135
125
136
126
137
class TestValidateResponse :
127
- def test_spec_not_detected (self ):
128
- spec = {}
138
+ def test_spec_not_detected (self , spec_invalid ):
129
139
request = mock .Mock (spec = Request )
130
140
response = mock .Mock (spec = Response )
131
141
132
142
with pytest .raises (ValidatorDetectError ):
133
- validate_response (request , response , spec = spec )
143
+ validate_response (request , response , spec = spec_invalid )
134
144
135
- def test_request_type_error (self ):
136
- spec = {"openapi" : "3.1" }
145
+ def test_request_type_error (self , spec_v31 ):
137
146
request = mock .sentinel .request
138
147
response = mock .Mock (spec = Response )
139
148
140
149
with pytest .raises (TypeError ):
141
- validate_response (request , response , spec = spec )
150
+ validate_response (request , response , spec = spec_v31 )
142
151
143
- def test_response_type_error (self ):
144
- spec = {"openapi" : "3.1" }
152
+ def test_response_type_error (self , spec_v31 ):
145
153
request = mock .Mock (spec = Request )
146
154
response = mock .sentinel .response
147
155
156
+ with pytest .raises (TypeError ):
157
+ validate_response (request , response , spec = spec_v31 )
158
+
159
+ def test_spec_type_error (self ):
160
+ request = mock .Mock (spec = Request )
161
+ response = mock .Mock (spec = Response )
162
+ spec = mock .sentinel .spec
163
+
148
164
with pytest .raises (TypeError ):
149
165
validate_response (request , response , spec = spec )
150
166
151
167
@mock .patch (
152
168
"openapi_core.validation.response.validators.ResponseValidator."
153
169
"validate" ,
154
170
)
155
- def test_request_response (self , mock_validate ):
156
- spec = {"openapi" : "3.1" }
171
+ def test_request_response (self , mock_validate , spec_v31 ):
172
+ request = mock .Mock (spec = Request )
173
+ response = mock .Mock (spec = Response )
174
+
175
+ result = validate_response (request , response , spec = spec_v31 )
176
+
177
+ assert result == mock_validate .return_value
178
+ mock_validate .aasert_called_once_with (request , response )
179
+
180
+ @mock .patch (
181
+ "openapi_core.validation.response.validators.ResponseValidator."
182
+ "validate" ,
183
+ )
184
+ def test_spec_as_first_arg_deprecated (self , mock_validate , spec_v31 ):
157
185
request = mock .Mock (spec = Request )
158
186
response = mock .Mock (spec = Response )
159
187
160
- result = validate_response (request , response , spec = spec )
188
+ result = validate_response (spec_v31 , request , response )
161
189
162
190
assert result == mock_validate .return_value
163
191
mock_validate .aasert_called_once_with (request , response )
@@ -166,62 +194,57 @@ def test_request_response(self, mock_validate):
166
194
"openapi_core.validation.response.validators.ResponseValidator."
167
195
"validate" ,
168
196
)
169
- def test_request_response_error (self , mock_validate ):
170
- spec = {"openapi" : "3.1" }
197
+ def test_request_response_error (self , mock_validate , spec_v31 ):
171
198
request = mock .Mock (spec = Request )
172
199
response = mock .Mock (spec = Response )
173
200
mock_validate .return_value = ResultMock (error_to_raise = ValueError )
174
201
175
202
with pytest .raises (ValueError ):
176
- validate_response (request , response , spec = spec )
203
+ validate_response (request , response , spec = spec_v31 )
177
204
178
205
mock_validate .aasert_called_once_with (request , response )
179
206
180
- def test_validator (self ):
181
- spec = mock .sentinel .spec
207
+ def test_validator (self , spec_v31 ):
182
208
request = mock .Mock (spec = Request )
183
209
response = mock .Mock (spec = Response )
184
210
validator = mock .Mock (spec = ResponseValidator )
185
211
186
212
with pytest .warns (DeprecationWarning ):
187
213
result = validate_response (
188
- request , response , spec = spec , validator = validator
214
+ request , response , spec = spec_v31 , validator = validator
189
215
)
190
216
191
217
assert result == validator .validate .return_value
192
218
validator .validate .aasert_called_once_with (request )
193
219
194
- def test_validator_cls (self ):
195
- spec = mock .sentinel .spec
220
+ def test_validator_cls (self , spec_v31 ):
196
221
request = mock .Mock (spec = Request )
197
222
response = mock .Mock (spec = Response )
198
223
validator_cls = mock .Mock (spec = ResponseValidator )
199
224
200
225
result = validate_response (
201
- request , response , spec = spec , cls = validator_cls
226
+ request , response , spec = spec_v31 , cls = validator_cls
202
227
)
203
228
204
229
assert result == validator_cls ().validate .return_value
205
230
validator_cls ().validate .aasert_called_once_with (request )
206
231
207
- def test_webhook_response_validator_not_found (self ):
208
- spec = {"openapi" : "3.0" }
232
+ def test_webhook_response_validator_not_found (self , spec_v30 ):
209
233
request = mock .Mock (spec = WebhookRequest )
210
234
response = mock .Mock (spec = Response )
211
235
212
236
with pytest .raises (ValidatorDetectError ):
213
- validate_response (request , response , spec = spec )
237
+ validate_response (request , response , spec = spec_v30 )
214
238
215
239
@mock .patch (
216
240
"openapi_core.validation.response.validators.WebhookResponseValidator."
217
241
"validate" ,
218
242
)
219
- def test_webhook_request (self , mock_validate ):
220
- spec = {"openapi" : "3.1" }
243
+ def test_webhook_request (self , mock_validate , spec_v31 ):
221
244
request = mock .Mock (spec = WebhookRequest )
222
245
response = mock .Mock (spec = Response )
223
246
224
- result = validate_response (request , response , spec = spec )
247
+ result = validate_response (request , response , spec = spec_v31 )
225
248
226
249
assert result == mock_validate .return_value
227
250
mock_validate .aasert_called_once_with (request , response )
@@ -230,25 +253,23 @@ def test_webhook_request(self, mock_validate):
230
253
"openapi_core.validation.response.validators.WebhookResponseValidator."
231
254
"validate" ,
232
255
)
233
- def test_webhook_request_error (self , mock_validate ):
234
- spec = {"openapi" : "3.1" }
256
+ def test_webhook_request_error (self , mock_validate , spec_v31 ):
235
257
request = mock .Mock (spec = WebhookRequest )
236
258
response = mock .Mock (spec = Response )
237
259
mock_validate .return_value = ResultMock (error_to_raise = ValueError )
238
260
239
261
with pytest .raises (ValueError ):
240
- validate_response (request , response , spec = spec )
262
+ validate_response (request , response , spec = spec_v31 )
241
263
242
264
mock_validate .aasert_called_once_with (request , response )
243
265
244
- def test_webhook_response_cls (self ):
245
- spec = mock .sentinel .spec
266
+ def test_webhook_response_cls (self , spec_v31 ):
246
267
request = mock .Mock (spec = WebhookRequest )
247
268
response = mock .Mock (spec = Response )
248
269
validator_cls = mock .Mock (spec = WebhookResponseValidator )
249
270
250
271
result = validate_response (
251
- request , response , spec = spec , cls = validator_cls
272
+ request , response , spec = spec_v31 , cls = validator_cls
252
273
)
253
274
254
275
assert result == validator_cls ().validate .return_value
0 commit comments