1818
1919from  starlette  import  applications 
2020from  starlette .responses  import  PlainTextResponse 
21- from  starlette .routing  import  Mount , Route 
21+ from  starlette .routing  import  Mount , Route ,  WebSocketRoute 
2222from  starlette .testclient  import  TestClient 
2323from  starlette .websockets  import  WebSocket 
2424
@@ -621,10 +621,7 @@ def tearDown(self) -> None:
621621
622622    @staticmethod  
623623    def  create_starlette_app ():
624-         app  =  applications .Starlette ()
625- 
626-         @app .route ("/foobar" ) 
627-         def  _ (request ):
624+         def  foobar (request ):
628625            return  PlainTextResponse (
629626                content = "hi" ,
630627                headers = {
@@ -636,8 +633,7 @@ def _(request):
636633                },
637634            )
638635
639-         @app .websocket_route ("/foobar_web" ) 
640-         async  def  _ (websocket : WebSocket ) ->  None :
636+         async  def  foobar_web (websocket : WebSocket ) ->  None :
641637            message  =  await  websocket .receive ()
642638            if  message .get ("type" ) ==  "websocket.connect" :
643639                await  websocket .send (
@@ -663,21 +659,23 @@ async def _(websocket: WebSocket) -> None:
663659            if  message .get ("type" ) ==  "websocket.disconnect" :
664660                pass 
665661
666-         return  app 
662+         return  applications .Starlette (
663+             routes = [
664+                 Route ("/foobar" , foobar ),
665+                 WebSocketRoute ("/foobar_web" , foobar_web ),
666+             ]
667+         )
667668
668669
670+ @patch .dict ( 
671+     "os.environ" , 
672+     { 
673+         OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS : ".*my-secret.*" , 
674+         OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST : "Custom-Test-Header-1,Custom-Test-Header-2,Custom-Test-Header-3,Regex-Test-Header-.*,Regex-Invalid-Test-Header-.*,.*my-secret.*" , 
675+         OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSE : "Custom-Test-Header-1,Custom-Test-Header-2,Custom-Test-Header-3,my-custom-regex-header-.*,invalid-regex-header-.*,.*my-secret.*" , 
676+     }, 
677+ ) 
669678class  TestHTTPAppWithCustomHeaders (TestBaseWithCustomHeaders ):
670-     @patch .dict ( 
671-         "os.environ" , 
672-         { 
673-             OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS : ".*my-secret.*" , 
674-             OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST : "Custom-Test-Header-1,Custom-Test-Header-2,Custom-Test-Header-3,Regex-Test-Header-.*,Regex-Invalid-Test-Header-.*,.*my-secret.*" , 
675-             OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSE : "Custom-Test-Header-1,Custom-Test-Header-2,Custom-Test-Header-3,my-custom-regex-header-.*,invalid-regex-header-.*,.*my-secret.*" , 
676-         }, 
677-     ) 
678-     def  setUp (self ) ->  None :
679-         super ().setUp ()
680- 
681679    def  test_custom_request_headers_in_span_attributes (self ):
682680        expected  =  {
683681            "http.request.header.custom_test_header_1" : (
@@ -792,18 +790,15 @@ def test_custom_response_headers_not_in_span_attributes(self):
792790            self .assertNotIn (key , server_span .attributes )
793791
794792
793+ @patch .dict ( 
794+     "os.environ" , 
795+     { 
796+         OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS : ".*my-secret.*" , 
797+         OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST : "Custom-Test-Header-1,Custom-Test-Header-2,Custom-Test-Header-3,Regex-Test-Header-.*,Regex-Invalid-Test-Header-.*,.*my-secret.*" , 
798+         OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSE : "Custom-Test-Header-1,Custom-Test-Header-2,Custom-Test-Header-3,my-custom-regex-header-.*,invalid-regex-header-.*,.*my-secret.*" , 
799+     }, 
800+ ) 
795801class  TestWebSocketAppWithCustomHeaders (TestBaseWithCustomHeaders ):
796-     @patch .dict ( 
797-         "os.environ" , 
798-         { 
799-             OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SANITIZE_FIELDS : ".*my-secret.*" , 
800-             OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_REQUEST : "Custom-Test-Header-1,Custom-Test-Header-2,Custom-Test-Header-3,Regex-Test-Header-.*,Regex-Invalid-Test-Header-.*,.*my-secret.*" , 
801-             OTEL_INSTRUMENTATION_HTTP_CAPTURE_HEADERS_SERVER_RESPONSE : "Custom-Test-Header-1,Custom-Test-Header-2,Custom-Test-Header-3,my-custom-regex-header-.*,invalid-regex-header-.*,.*my-secret.*" , 
802-         }, 
803-     ) 
804-     def  setUp (self ) ->  None :
805-         super ().setUp ()
806- 
807802    def  test_custom_request_headers_in_span_attributes (self ):
808803        expected  =  {
809804            "http.request.header.custom_test_header_1" : (
0 commit comments