1
1
import json
2
2
import re
3
- import pytest
4
3
import logging
5
-
6
4
from io import BytesIO
7
5
6
+ import pytest
8
7
from flask import (
9
8
Flask ,
10
9
Response ,
14
13
render_template_string ,
15
14
)
16
15
from flask .views import View
17
-
18
16
from flask_login import LoginManager , login_user
19
17
18
+ try :
19
+ from werkzeug .wrappers .request import UnsupportedMediaType
20
+ except ImportError :
21
+ UnsupportedMediaType = None
22
+
23
+ import sentry_sdk .integrations .flask as flask_sentry
20
24
from sentry_sdk import (
21
25
set_tag ,
22
26
configure_scope ,
26
30
Hub ,
27
31
)
28
32
from sentry_sdk .integrations .logging import LoggingIntegration
29
- import sentry_sdk .integrations .flask as flask_sentry
30
33
from sentry_sdk .serializer import MAX_DATABAG_BREADTH
31
34
32
35
@@ -340,7 +343,11 @@ def test_flask_medium_formdata_request(sentry_init, capture_events, app):
340
343
def index ():
341
344
assert request .form ["foo" ] == data ["foo" ]
342
345
assert not request .get_data ()
343
- assert not request .get_json ()
346
+ try :
347
+ assert not request .get_json ()
348
+ except UnsupportedMediaType :
349
+ # flask/werkzeug 3
350
+ pass
344
351
capture_message ("hi" )
345
352
return "ok"
346
353
@@ -372,7 +379,11 @@ def index():
372
379
assert request .form ["username" ] == data ["username" ]
373
380
assert request .form ["age" ] == data ["age" ]
374
381
assert not request .get_data ()
375
- assert not request .get_json ()
382
+ try :
383
+ assert not request .get_json ()
384
+ except UnsupportedMediaType :
385
+ # flask/werkzeug 3
386
+ pass
376
387
set_tag ("view" , "yes" )
377
388
capture_message ("hi" )
378
389
return "ok"
@@ -405,7 +416,11 @@ def index():
405
416
assert request .get_data () == data
406
417
else :
407
418
assert request .get_data () == data .encode ("ascii" )
408
- assert not request .get_json ()
419
+ try :
420
+ assert not request .get_json ()
421
+ except UnsupportedMediaType :
422
+ # flask/werkzeug 3
423
+ pass
409
424
capture_message ("hi" )
410
425
return "ok"
411
426
@@ -431,7 +446,11 @@ def test_flask_files_and_form(sentry_init, capture_events, app):
431
446
def index ():
432
447
assert list (request .form ) == ["foo" ]
433
448
assert list (request .files ) == ["file" ]
434
- assert not request .get_json ()
449
+ try :
450
+ assert not request .get_json ()
451
+ except UnsupportedMediaType :
452
+ # flask/werkzeug 3
453
+ pass
435
454
capture_message ("hi" )
436
455
return "ok"
437
456
@@ -545,9 +564,12 @@ def test_cli_commands_raise(app):
545
564
def foo ():
546
565
1 / 0
547
566
567
+ def create_app (* _ ):
568
+ return app
569
+
548
570
with pytest .raises (ZeroDivisionError ):
549
571
app .cli .main (
550
- args = ["foo" ], prog_name = "myapp" , obj = ScriptInfo (create_app = lambda _ : app )
572
+ args = ["foo" ], prog_name = "myapp" , obj = ScriptInfo (create_app = create_app )
551
573
)
552
574
553
575
0 commit comments