@@ -47,12 +47,17 @@ def error():
47
47
def ignored ():
48
48
return "ignored"
49
49
50
+ @app .post ("/explicit-off/" , name = "explicit-off" , tags = {"telemetry" : False })
51
+ def explicit_off ():
52
+ return "explicit_off"
53
+
50
54
@pytest .mark .parametrize (
51
55
[
52
56
"path" ,
53
57
"request_params" ,
54
58
"request_body" ,
55
59
"request_cookies" ,
60
+ "status_code" ,
56
61
"response" ,
57
62
"exception" ,
58
63
"before" ,
@@ -65,6 +70,7 @@ def ignored():
65
70
{"y" : 1 },
66
71
b"body" ,
67
72
{"access_token" : TOKEN },
73
+ http .HTTPStatus .OK ,
68
74
{"x" : 1 , "y" : 1 , "body" : "body" },
69
75
None ,
70
76
None ,
@@ -77,6 +83,7 @@ def ignored():
77
83
{"y" : 1 },
78
84
b"body" ,
79
85
{"access_token" : TOKEN },
86
+ http .HTTPStatus .OK ,
80
87
{"x" : 1 , "y" : 1 , "body" : "body" },
81
88
None ,
82
89
MagicMock (),
@@ -128,6 +135,7 @@ def ignored():
128
135
{"y" : 1 },
129
136
b"body" ,
130
137
{"access_token" : TOKEN },
138
+ http .HTTPStatus .OK ,
131
139
{"x" : 1 , "y" : 1 , "body" : "body" },
132
140
None ,
133
141
AsyncMock (),
@@ -179,6 +187,7 @@ def ignored():
179
187
{},
180
188
None ,
181
189
{},
190
+ http .HTTPStatus .OK ,
182
191
None ,
183
192
ValueError ("foo" ),
184
193
None ,
@@ -191,6 +200,7 @@ def ignored():
191
200
{},
192
201
None ,
193
202
{},
203
+ http .HTTPStatus .OK ,
194
204
None ,
195
205
ValueError ("foo" ),
196
206
MagicMock (),
@@ -222,6 +232,7 @@ def ignored():
222
232
{},
223
233
None ,
224
234
{},
235
+ http .HTTPStatus .OK ,
225
236
None ,
226
237
ValueError ("foo" ),
227
238
AsyncMock (),
@@ -248,12 +259,62 @@ def ignored():
248
259
),
249
260
id = "error_async_hooks" ,
250
261
),
251
- pytest .param ("/ignored/" , {}, None , {}, "ignored" , None , AsyncMock (), AsyncMock (), None , id = "ignored" ),
262
+ pytest .param (
263
+ "/ignored/" ,
264
+ {},
265
+ None ,
266
+ {},
267
+ http .HTTPStatus .OK ,
268
+ "ignored" ,
269
+ None ,
270
+ AsyncMock (),
271
+ AsyncMock (),
272
+ None ,
273
+ id = "ignored" ,
274
+ ),
275
+ pytest .param (
276
+ "/explicit-off/" ,
277
+ {},
278
+ None ,
279
+ {},
280
+ http .HTTPStatus .OK ,
281
+ "explicit_off" ,
282
+ None ,
283
+ AsyncMock (),
284
+ AsyncMock (),
285
+ None ,
286
+ id = "explicit_off" ,
287
+ ),
288
+ pytest .param (
289
+ "/not-found/" ,
290
+ {},
291
+ None ,
292
+ {},
293
+ http .HTTPStatus .NOT_FOUND ,
294
+ {"status_code" : 404 , "detail" : "Not Found" , "error" : "HTTPException" },
295
+ None ,
296
+ None ,
297
+ None ,
298
+ None ,
299
+ id = "not_found" ,
300
+ ),
252
301
],
253
302
indirect = ["exception" ],
254
303
)
255
304
async def test_request (
256
- self , app , client , path , request_params , request_body , request_cookies , response , exception , before , after , data
305
+ self ,
306
+ app ,
307
+ client ,
308
+ path ,
309
+ request_params ,
310
+ request_body ,
311
+ request_cookies ,
312
+ status_code ,
313
+ response ,
314
+ exception ,
315
+ before ,
316
+ after ,
317
+ data ,
257
318
):
258
319
app .add_middleware (Middleware (TelemetryMiddleware , before = before , after = after , ignored = [r"/ignored.*" ]))
259
320
@@ -271,7 +332,7 @@ async def test_request(
271
332
with exception , patch ("datetime.datetime" , MagicMock (now = MagicMock (return_value = now ))):
272
333
r = await client .post (path , params = request_params , content = request_body )
273
334
274
- assert r .status_code == http . HTTPStatus . OK
335
+ assert r .status_code == status_code
275
336
assert r .json () == response
276
337
277
338
if before :
0 commit comments