@@ -637,20 +637,49 @@ def test_middleware_spans(sentry_init, capture_events):
637
637
638
638
(_ , transaction_event ) = events
639
639
640
- expected = [
640
+ expected_middleware_spans = [
641
641
"ServerErrorMiddleware" ,
642
642
"AuthenticationMiddleware" ,
643
643
"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'
644
648
]
645
649
650
+ assert len (transaction_event ["spans" ]) == len (expected_middleware_spans )
651
+
646
652
idx = 0
647
653
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
+ )
651
659
idx += 1
652
660
653
661
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
+
654
683
def test_middleware_callback_spans (sentry_init , capture_events ):
655
684
sentry_init (
656
685
traces_sample_rate = 1.0 ,
0 commit comments