@@ -74,7 +74,7 @@ def error_wsgi(environ, start_response):
7474
7575
7676class TestWsgiApplication (WsgiTestBase ):
77- def validate_response (self , response , error = None ):
77+ def validate_response (self , response , error = None , span_name = "HTTP GET" ):
7878 while True :
7979 try :
8080 value = next (response )
@@ -95,7 +95,7 @@ def validate_response(self, response, error=None):
9595
9696 span_list = self .memory_exporter .get_finished_spans ()
9797 self .assertEqual (len (span_list ), 1 )
98- self .assertEqual (span_list [0 ].name , "/" )
98+ self .assertEqual (span_list [0 ].name , span_name )
9999 self .assertEqual (span_list [0 ].kind , trace_api .SpanKind .SERVER )
100100 self .assertEqual (
101101 span_list [0 ].attributes ,
@@ -147,6 +147,17 @@ def test_wsgi_exc_info(self):
147147 response = app (self .environ , self .start_response )
148148 self .validate_response (response , error = ValueError )
149149
150+ def test_override_span_name (self ):
151+ """Test that span_names can be overwritten by our callback function."""
152+ span_name = "Dymaxion"
153+ def get_predefined_span_name (scope ):
154+ return span_name
155+ app = otel_wsgi .OpenTelemetryMiddleware (
156+ simple_wsgi , name_callback = get_predefined_span_name
157+ )
158+ response = app (self .environ , self .start_response )
159+ self .validate_response (response , span_name = span_name )
160+
150161
151162class TestWsgiAttributes (unittest .TestCase ):
152163 def setUp (self ):
0 commit comments