18
18
19
19
from starlette import applications
20
20
from starlette .responses import PlainTextResponse
21
- from starlette .routing import Mount , Route
21
+ from starlette .routing import Mount , Route , WebSocketRoute
22
22
from starlette .testclient import TestClient
23
23
from starlette .websockets import WebSocket
24
24
@@ -621,10 +621,7 @@ def tearDown(self) -> None:
621
621
622
622
@staticmethod
623
623
def create_starlette_app ():
624
- app = applications .Starlette ()
625
-
626
- @app .route ("/foobar" )
627
- def _ (request ):
624
+ def foobar (request ):
628
625
return PlainTextResponse (
629
626
content = "hi" ,
630
627
headers = {
@@ -636,8 +633,7 @@ def _(request):
636
633
},
637
634
)
638
635
639
- @app .websocket_route ("/foobar_web" )
640
- async def _ (websocket : WebSocket ) -> None :
636
+ async def foobar_web (websocket : WebSocket ) -> None :
641
637
message = await websocket .receive ()
642
638
if message .get ("type" ) == "websocket.connect" :
643
639
await websocket .send (
@@ -663,21 +659,23 @@ async def _(websocket: WebSocket) -> None:
663
659
if message .get ("type" ) == "websocket.disconnect" :
664
660
pass
665
661
666
- return app
662
+ return applications .Starlette (
663
+ routes = [
664
+ Route ("/foobar" , foobar ),
665
+ WebSocketRoute ("/foobar_web" , foobar_web ),
666
+ ]
667
+ )
667
668
668
669
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
+ )
669
678
class 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
-
681
679
def test_custom_request_headers_in_span_attributes (self ):
682
680
expected = {
683
681
"http.request.header.custom_test_header_1" : (
@@ -792,18 +790,15 @@ def test_custom_response_headers_not_in_span_attributes(self):
792
790
self .assertNotIn (key , server_span .attributes )
793
791
794
792
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
+ )
795
801
class 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
-
807
802
def test_custom_request_headers_in_span_attributes (self ):
808
803
expected = {
809
804
"http.request.header.custom_test_header_1" : (
0 commit comments