11import json
22import re
3- import pytest
43import logging
5-
64from io import BytesIO
75
6+ import pytest
87from flask import (
98 Flask ,
109 Response ,
1413 render_template_string ,
1514)
1615from flask .views import View
17-
1816from flask_login import LoginManager , login_user
1917
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
2024from sentry_sdk import (
2125 set_tag ,
2226 configure_scope ,
2630 Hub ,
2731)
2832from sentry_sdk .integrations .logging import LoggingIntegration
29- import sentry_sdk .integrations .flask as flask_sentry
3033from sentry_sdk .serializer import MAX_DATABAG_BREADTH
3134
3235
@@ -340,7 +343,11 @@ def test_flask_medium_formdata_request(sentry_init, capture_events, app):
340343 def index ():
341344 assert request .form ["foo" ] == data ["foo" ]
342345 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
344351 capture_message ("hi" )
345352 return "ok"
346353
@@ -372,7 +379,11 @@ def index():
372379 assert request .form ["username" ] == data ["username" ]
373380 assert request .form ["age" ] == data ["age" ]
374381 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
376387 set_tag ("view" , "yes" )
377388 capture_message ("hi" )
378389 return "ok"
@@ -405,7 +416,11 @@ def index():
405416 assert request .get_data () == data
406417 else :
407418 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
409424 capture_message ("hi" )
410425 return "ok"
411426
@@ -431,7 +446,11 @@ def test_flask_files_and_form(sentry_init, capture_events, app):
431446 def index ():
432447 assert list (request .form ) == ["foo" ]
433448 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
435454 capture_message ("hi" )
436455 return "ok"
437456
@@ -545,9 +564,12 @@ def test_cli_commands_raise(app):
545564 def foo ():
546565 1 / 0
547566
567+ def create_app (* _ ):
568+ return app
569+
548570 with pytest .raises (ZeroDivisionError ):
549571 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 )
551573 )
552574
553575
0 commit comments