1818
1919
2020class TestValidateRequest :
21- def test_spec_not_detected (self ):
22- spec = {}
21+ def test_spec_not_detected (self , spec_invalid ):
2322 request = mock .Mock (spec = Request )
2423
2524 with pytest .raises (ValidatorDetectError ):
26- validate_request (request , spec = spec )
25+ validate_request (request , spec = spec_invalid )
2726
28- def test_request_type_error (self ):
29- spec = {"openapi" : "3.1" }
27+ def test_request_type_error (self , spec_v31 ):
3028 request = mock .sentinel .request
3129
3230 with pytest .raises (TypeError ):
33- validate_request (request , spec = spec )
31+ validate_request (request , spec = spec_v31 )
3432
3533 @mock .patch (
3634 "openapi_core.validation.request.validators.RequestValidator.validate" ,
3735 )
38- def test_request (self , mock_validate ):
39- spec = {"openapi" : "3.1" }
36+ def test_request (self , mock_validate , spec_v31 ):
4037 request = mock .Mock (spec = Request )
4138
42- result = validate_request (request , spec = spec )
39+ result = validate_request (request , spec = spec_v31 )
4340
4441 assert result == mock_validate .return_value
4542 mock_validate .validate .aasert_called_once_with (request )
4643
4744 @mock .patch (
4845 "openapi_core.validation.request.validators.RequestValidator.validate" ,
4946 )
50- def test_request_error (self , mock_validate ):
51- spec = {"openapi" : "3.1" }
47+ def test_spec_as_first_arg_deprecated (self , mock_validate , spec_v31 ):
48+ request = mock .Mock (spec = Request )
49+
50+ with pytest .warns (DeprecationWarning ):
51+ result = validate_request (spec_v31 , request )
52+
53+ assert result == mock_validate .return_value
54+ mock_validate .validate .aasert_called_once_with (request )
55+
56+ @mock .patch (
57+ "openapi_core.validation.request.validators.RequestValidator.validate" ,
58+ )
59+ def test_request_error (self , mock_validate , spec_v31 ):
5260 request = mock .Mock (spec = Request )
5361 mock_validate .return_value = ResultMock (error_to_raise = ValueError )
5462
5563 with pytest .raises (ValueError ):
56- validate_request (request , spec = spec )
64+ validate_request (request , spec = spec_v31 )
5765
5866 mock_validate .aasert_called_once_with (request )
5967
60- def test_validator (self ):
61- spec = mock .sentinel .spec
68+ def test_validator (self , spec_v31 ):
6269 request = mock .Mock (spec = Request )
6370 validator = mock .Mock (spec = RequestValidator )
6471
6572 with pytest .warns (DeprecationWarning ):
66- result = validate_request (request , spec = spec , validator = validator )
73+ result = validate_request (
74+ request , spec = spec_v31 , validator = validator
75+ )
6776
6877 assert result == validator .validate .return_value
6978 validator .validate .aasert_called_once_with (request )
7079
71- def test_validator_cls (self ):
72- spec = mock .sentinel .spec
80+ def test_validator_cls (self , spec_v31 ):
7381 request = mock .Mock (spec = Request )
7482 validator_cls = mock .Mock (spec = RequestValidator )
7583
76- result = validate_request (request , spec = spec , cls = validator_cls )
84+ result = validate_request (request , spec = spec_v31 , cls = validator_cls )
7785
7886 assert result == validator_cls ().validate .return_value
7987 validator_cls ().validate .aasert_called_once_with (request )
@@ -82,82 +90,87 @@ def test_validator_cls(self):
8290 "openapi_core.validation.request.validators.WebhookRequestValidator."
8391 "validate" ,
8492 )
85- def test_webhook_request (self , mock_validate ):
86- spec = {"openapi" : "3.1" }
93+ def test_webhook_request (self , mock_validate , spec_v31 ):
8794 request = mock .Mock (spec = WebhookRequest )
8895
89- result = validate_request (request , spec = spec )
96+ result = validate_request (request , spec = spec_v31 )
9097
9198 assert result == mock_validate .return_value
9299 mock_validate .validate .aasert_called_once_with (request )
93100
94- def test_webhook_request_validator_not_found (self ):
95- spec = {"openapi" : "3.0" }
101+ def test_webhook_request_validator_not_found (self , spec_v30 ):
96102 request = mock .Mock (spec = WebhookRequest )
97103
98104 with pytest .raises (ValidatorDetectError ):
99- validate_request (request , spec = spec )
105+ validate_request (request , spec = spec_v30 )
100106
101107 @mock .patch (
102108 "openapi_core.validation.request.validators.WebhookRequestValidator."
103109 "validate" ,
104110 )
105- def test_webhook_request_error (self , mock_validate ):
106- spec = {"openapi" : "3.1" }
111+ def test_webhook_request_error (self , mock_validate , spec_v31 ):
107112 request = mock .Mock (spec = WebhookRequest )
108113 mock_validate .return_value = ResultMock (error_to_raise = ValueError )
109114
110115 with pytest .raises (ValueError ):
111- validate_request (request , spec = spec )
116+ validate_request (request , spec = spec_v31 )
112117
113118 mock_validate .aasert_called_once_with (request )
114119
115- def test_webhook_validator_cls (self ):
116- spec = mock .sentinel .spec
120+ def test_webhook_validator_cls (self , spec_v31 ):
117121 request = mock .Mock (spec = WebhookRequest )
118122 validator_cls = mock .Mock (spec = WebhookRequestValidator )
119123
120- result = validate_request (request , spec = spec , cls = validator_cls )
124+ result = validate_request (request , spec = spec_v31 , cls = validator_cls )
121125
122126 assert result == validator_cls ().validate .return_value
123127 validator_cls ().validate .aasert_called_once_with (request )
124128
125129
126130class TestValidateResponse :
127- def test_spec_not_detected (self ):
128- spec = {}
131+ def test_spec_not_detected (self , spec_invalid ):
129132 request = mock .Mock (spec = Request )
130133 response = mock .Mock (spec = Response )
131134
132135 with pytest .raises (ValidatorDetectError ):
133- validate_response (request , response , spec = spec )
136+ validate_response (request , response , spec = spec_invalid )
134137
135- def test_request_type_error (self ):
136- spec = {"openapi" : "3.1" }
138+ def test_request_type_error (self , spec_v31 ):
137139 request = mock .sentinel .request
138140 response = mock .Mock (spec = Response )
139141
140142 with pytest .raises (TypeError ):
141- validate_response (request , response , spec = spec )
143+ validate_response (request , response , spec = spec_v31 )
142144
143- def test_response_type_error (self ):
144- spec = {"openapi" : "3.1" }
145+ def test_response_type_error (self , spec_v31 ):
145146 request = mock .Mock (spec = Request )
146147 response = mock .sentinel .response
147148
148149 with pytest .raises (TypeError ):
149- validate_response (request , response , spec = spec )
150+ validate_response (request , response , spec = spec_v31 )
151+
152+ @mock .patch (
153+ "openapi_core.validation.response.validators.ResponseValidator."
154+ "validate" ,
155+ )
156+ def test_request_response (self , mock_validate , spec_v31 ):
157+ request = mock .Mock (spec = Request )
158+ response = mock .Mock (spec = Response )
159+
160+ result = validate_response (request , response , spec = spec_v31 )
161+
162+ assert result == mock_validate .return_value
163+ mock_validate .aasert_called_once_with (request , response )
150164
151165 @mock .patch (
152166 "openapi_core.validation.response.validators.ResponseValidator."
153167 "validate" ,
154168 )
155- def test_request_response (self , mock_validate ):
156- spec = {"openapi" : "3.1" }
169+ def test_spec_as_first_arg_deprecated (self , mock_validate , spec_v31 ):
157170 request = mock .Mock (spec = Request )
158171 response = mock .Mock (spec = Response )
159172
160- result = validate_response (request , response , spec = spec )
173+ result = validate_response (spec_v31 , request , response )
161174
162175 assert result == mock_validate .return_value
163176 mock_validate .aasert_called_once_with (request , response )
@@ -166,62 +179,57 @@ def test_request_response(self, mock_validate):
166179 "openapi_core.validation.response.validators.ResponseValidator."
167180 "validate" ,
168181 )
169- def test_request_response_error (self , mock_validate ):
170- spec = {"openapi" : "3.1" }
182+ def test_request_response_error (self , mock_validate , spec_v31 ):
171183 request = mock .Mock (spec = Request )
172184 response = mock .Mock (spec = Response )
173185 mock_validate .return_value = ResultMock (error_to_raise = ValueError )
174186
175187 with pytest .raises (ValueError ):
176- validate_response (request , response , spec = spec )
188+ validate_response (request , response , spec = spec_v31 )
177189
178190 mock_validate .aasert_called_once_with (request , response )
179191
180- def test_validator (self ):
181- spec = mock .sentinel .spec
192+ def test_validator (self , spec_v31 ):
182193 request = mock .Mock (spec = Request )
183194 response = mock .Mock (spec = Response )
184195 validator = mock .Mock (spec = ResponseValidator )
185196
186197 with pytest .warns (DeprecationWarning ):
187198 result = validate_response (
188- request , response , spec = spec , validator = validator
199+ request , response , spec = spec_v31 , validator = validator
189200 )
190201
191202 assert result == validator .validate .return_value
192203 validator .validate .aasert_called_once_with (request )
193204
194- def test_validator_cls (self ):
195- spec = mock .sentinel .spec
205+ def test_validator_cls (self , spec_v31 ):
196206 request = mock .Mock (spec = Request )
197207 response = mock .Mock (spec = Response )
198208 validator_cls = mock .Mock (spec = ResponseValidator )
199209
200210 result = validate_response (
201- request , response , spec = spec , cls = validator_cls
211+ request , response , spec = spec_v31 , cls = validator_cls
202212 )
203213
204214 assert result == validator_cls ().validate .return_value
205215 validator_cls ().validate .aasert_called_once_with (request )
206216
207- def test_webhook_response_validator_not_found (self ):
208- spec = {"openapi" : "3.0" }
217+ def test_webhook_response_validator_not_found (self , spec_v30 ):
209218 request = mock .Mock (spec = WebhookRequest )
210219 response = mock .Mock (spec = Response )
211220
212221 with pytest .raises (ValidatorDetectError ):
213- validate_response (request , response , spec = spec )
222+ validate_response (request , response , spec = spec_v30 )
214223
215224 @mock .patch (
216225 "openapi_core.validation.response.validators.WebhookResponseValidator."
217226 "validate" ,
218227 )
219- def test_webhook_request (self , mock_validate ):
220- spec = {"openapi" : "3.1" }
228+ def test_webhook_request (self , mock_validate , spec_v31 ):
221229 request = mock .Mock (spec = WebhookRequest )
222230 response = mock .Mock (spec = Response )
223231
224- result = validate_response (request , response , spec = spec )
232+ result = validate_response (request , response , spec = spec_v31 )
225233
226234 assert result == mock_validate .return_value
227235 mock_validate .aasert_called_once_with (request , response )
@@ -230,25 +238,23 @@ def test_webhook_request(self, mock_validate):
230238 "openapi_core.validation.response.validators.WebhookResponseValidator."
231239 "validate" ,
232240 )
233- def test_webhook_request_error (self , mock_validate ):
234- spec = {"openapi" : "3.1" }
241+ def test_webhook_request_error (self , mock_validate , spec_v31 ):
235242 request = mock .Mock (spec = WebhookRequest )
236243 response = mock .Mock (spec = Response )
237244 mock_validate .return_value = ResultMock (error_to_raise = ValueError )
238245
239246 with pytest .raises (ValueError ):
240- validate_response (request , response , spec = spec )
247+ validate_response (request , response , spec = spec_v31 )
241248
242249 mock_validate .aasert_called_once_with (request , response )
243250
244- def test_webhook_response_cls (self ):
245- spec = mock .sentinel .spec
251+ def test_webhook_response_cls (self , spec_v31 ):
246252 request = mock .Mock (spec = WebhookRequest )
247253 response = mock .Mock (spec = Response )
248254 validator_cls = mock .Mock (spec = WebhookResponseValidator )
249255
250256 result = validate_response (
251- request , response , spec = spec , cls = validator_cls
257+ request , response , spec = spec_v31 , cls = validator_cls
252258 )
253259
254260 assert result == validator_cls ().validate .return_value
0 commit comments