@@ -173,7 +173,7 @@ def test_endpoint_error(self, client):
173
173
}
174
174
assert result .json == expected_data
175
175
176
- def test_valid_response_object (self , client ):
176
+ def test_response_object_valid (self , client ):
177
177
def view_response_callable (* args , ** kwargs ):
178
178
from flask .globals import request
179
179
@@ -197,7 +197,28 @@ def view_response_callable(*args, **kwargs):
197
197
"data" : "data" ,
198
198
}
199
199
200
- def test_valid_tuple_str (self , client ):
200
+ @pytest .mark .parametrize (
201
+ "response,expected_status,expected_headers" ,
202
+ [
203
+ # ((body, status, headers)) response tuple
204
+ (
205
+ ("Not found" , 404 , {"X-Rate-Limit" : "12" }),
206
+ 404 ,
207
+ {"X-Rate-Limit" : "12" },
208
+ ),
209
+ # (body, status) response tuple
210
+ (("Not found" , 404 ), 404 , {}),
211
+ # (body, headers) response tuple
212
+ (
213
+ ({"data" : "data" }, {"X-Rate-Limit" : "12" }),
214
+ 200 ,
215
+ {"X-Rate-Limit" : "12" },
216
+ ),
217
+ ],
218
+ )
219
+ def test_tuple_valid (
220
+ self , client , response , expected_status , expected_headers
221
+ ):
201
222
def view_response_callable (* args , ** kwargs ):
202
223
from flask .globals import request
203
224
@@ -208,35 +229,16 @@ def view_response_callable(*args, **kwargs):
208
229
"id" : 12 ,
209
230
}
210
231
)
211
- return ( "Not found" , 404 )
232
+ return response
212
233
213
234
self .view_response_callable = view_response_callable
214
235
215
236
result = client .get ("/browse/12/" )
216
237
217
- assert result .status_code == 404
218
- assert result .text == "Not found"
219
-
220
- def test_valid_tuple_dict (self , client ):
221
- def view_response_callable (* args , ** kwargs ):
222
- from flask .globals import request
223
-
224
- assert request .openapi
225
- assert not request .openapi .errors
226
- assert request .openapi .parameters == Parameters (
227
- path = {
228
- "id" : 12 ,
229
- }
230
- )
231
- body = dict (data = "data" )
232
- headers = {"X-Rate-Limit" : "12" }
233
- return (body , headers )
234
-
235
- self .view_response_callable = view_response_callable
236
-
237
- result = client .get ("/browse/12/" )
238
-
239
- assert result .status_code == 200
240
- assert result .json == {
241
- "data" : "data" ,
242
- }
238
+ assert result .status_code == expected_status
239
+ expected_body = response [0 ]
240
+ if isinstance (expected_body , str ):
241
+ assert result .text == expected_body
242
+ else :
243
+ assert result .json == expected_body
244
+ assert dict (result .headers ).items () >= expected_headers .items ()
0 commit comments