@@ -309,6 +309,23 @@ def test_span_hierarchy(self, langfuse_client, memory_exporter):
309309 # All spans should have the same trace ID
310310 assert len (set (s ["trace_id" ] for s in spans )) == 1
311311
312+ def test_update_current_span_name (self , langfuse_client , memory_exporter ):
313+ """Test updating current span name via update_current_span method."""
314+ # Create a span using context manager
315+ with langfuse_client .start_as_current_span (name = "original-current-span" ):
316+ # Update the current span name
317+ langfuse_client .update_current_span (name = "updated-current-span" )
318+
319+ # Verify the span name was updated
320+ spans = self .get_spans_by_name (memory_exporter , "updated-current-span" )
321+ assert len (spans ) == 1 , "Expected one span with updated name"
322+
323+ # Also verify no spans exist with the original name
324+ original_spans = self .get_spans_by_name (
325+ memory_exporter , "original-current-span"
326+ )
327+ assert len (original_spans ) == 0 , "Expected no spans with original name"
328+
312329 def test_span_attributes (self , langfuse_client , memory_exporter ):
313330 """Test that span attributes are correctly set and updated."""
314331 # Create a span with attributes
@@ -360,6 +377,23 @@ def test_span_attributes(self, langfuse_client, memory_exporter):
360377 == "Test status"
361378 )
362379
380+ def test_span_name_update (self , langfuse_client , memory_exporter ):
381+ """Test updating span name via update method."""
382+ # Create a span with initial name
383+ span = langfuse_client .start_span (name = "original-span-name" )
384+
385+ # Update the span name
386+ span .update (name = "updated-span-name" )
387+ span .end ()
388+
389+ # Verify the span name was updated
390+ spans = self .get_spans_by_name (memory_exporter , "updated-span-name" )
391+ assert len (spans ) == 1 , "Expected one span with updated name"
392+
393+ # Also verify no spans exist with the original name
394+ original_spans = self .get_spans_by_name (memory_exporter , "original-span-name" )
395+ assert len (original_spans ) == 0 , "Expected no spans with original name"
396+
363397 def test_generation_span (self , langfuse_client , memory_exporter ):
364398 """Test creating a generation span with model-specific attributes."""
365399 # Create a generation
@@ -394,6 +428,27 @@ def test_generation_span(self, langfuse_client, memory_exporter):
394428 )
395429 assert usage == {"input" : 10 , "output" : 5 , "total" : 15 }
396430
431+ def test_generation_name_update (self , langfuse_client , memory_exporter ):
432+ """Test updating generation name via update method."""
433+ # Create a generation with initial name
434+ generation = langfuse_client .start_generation (
435+ name = "original-generation-name" , model = "gpt-4"
436+ )
437+
438+ # Update the generation name
439+ generation .update (name = "updated-generation-name" )
440+ generation .end ()
441+
442+ # Verify the generation name was updated
443+ spans = self .get_spans_by_name (memory_exporter , "updated-generation-name" )
444+ assert len (spans ) == 1 , "Expected one generation with updated name"
445+
446+ # Also verify no spans exist with the original name
447+ original_spans = self .get_spans_by_name (
448+ memory_exporter , "original-generation-name"
449+ )
450+ assert len (original_spans ) == 0 , "Expected no generations with original name"
451+
397452 def test_trace_update (self , langfuse_client , memory_exporter ):
398453 """Test updating trace level attributes."""
399454 # Create a span and update trace attributes
@@ -514,6 +569,25 @@ def test_complex_scenario(self, langfuse_client, memory_exporter):
514569 assert llm_input == {"prompt" : "Summarize this text" }
515570 assert llm_output == {"text" : "This is a summary" }
516571
572+ def test_update_current_generation_name (self , langfuse_client , memory_exporter ):
573+ """Test updating current generation name via update_current_generation method."""
574+ # Create a generation using context manager
575+ with langfuse_client .start_as_current_generation (
576+ name = "original-current-generation" , model = "gpt-4"
577+ ):
578+ # Update the current generation name
579+ langfuse_client .update_current_generation (name = "updated-current-generation" )
580+
581+ # Verify the generation name was updated
582+ spans = self .get_spans_by_name (memory_exporter , "updated-current-generation" )
583+ assert len (spans ) == 1 , "Expected one generation with updated name"
584+
585+ # Also verify no spans exist with the original name
586+ original_spans = self .get_spans_by_name (
587+ memory_exporter , "original-current-generation"
588+ )
589+ assert len (original_spans ) == 0 , "Expected no generations with original name"
590+
517591 def test_custom_trace_id (self , langfuse_client , memory_exporter ):
518592 """Test setting a custom trace ID."""
519593 # Create a custom trace ID
0 commit comments