@@ -637,20 +637,49 @@ def test_middleware_spans(sentry_init, capture_events):
637637
638638 (_ , transaction_event ) = events
639639
640- expected = [
640+ expected_middleware_spans = [
641641 "ServerErrorMiddleware" ,
642642 "AuthenticationMiddleware" ,
643643 "ExceptionMiddleware" ,
644+ "AuthenticationMiddleware" , # 'op': 'middleware.starlette.send'
645+ "ServerErrorMiddleware" , # 'op': 'middleware.starlette.send'
646+ "AuthenticationMiddleware" , # 'op': 'middleware.starlette.send'
647+ "ServerErrorMiddleware" , # 'op': 'middleware.starlette.send'
644648 ]
645649
650+ assert len (transaction_event ["spans" ]) == len (expected_middleware_spans )
651+
646652 idx = 0
647653 for span in transaction_event ["spans" ]:
648- if span ["op" ] == "middleware.starlette" :
649- assert span ["description" ] == expected [idx ]
650- assert span ["tags" ]["starlette.middleware_name" ] == expected [idx ]
654+ if span ["op" ].startswith ("middleware.starlette" ):
655+ assert (
656+ span ["tags" ]["starlette.middleware_name" ]
657+ == expected_middleware_spans [idx ]
658+ )
651659 idx += 1
652660
653661
662+ def test_middleware_spans_disabled (sentry_init , capture_events ):
663+ sentry_init (
664+ traces_sample_rate = 1.0 ,
665+ integrations = [StarletteIntegration (middleware_spans = False )],
666+ )
667+ starlette_app = starlette_app_factory (
668+ middleware = [Middleware (AuthenticationMiddleware , backend = BasicAuthBackend ())]
669+ )
670+ events = capture_events ()
671+
672+ client = TestClient (starlette_app , raise_server_exceptions = False )
673+ try :
674+ client .get ("/message" , auth = ("Gabriela" , "hello123" ))
675+ except Exception :
676+ pass
677+
678+ (_ , transaction_event ) = events
679+
680+ assert len (transaction_event ["spans" ]) == 0
681+
682+
654683def test_middleware_callback_spans (sentry_init , capture_events ):
655684 sentry_init (
656685 traces_sample_rate = 1.0 ,
0 commit comments