@@ -636,14 +636,14 @@ def test_ai_graph_tracker_duplicate_success_is_ignored(client: LDClient):
636636 assert g .get_summary ().success is True
637637
638638
639- def test_ai_graph_tracker_duplicate_path_is_ignored (client : LDClient ):
639+ def test_ai_graph_tracker_path_accumulates (client : LDClient ):
640640 context = Context .create ("user-key" )
641641 g = AIGraphTracker (client , "variation-key" , "graph-key" , 2 , context )
642642 g .track_path (["a" , "b" ])
643643 g .track_path (["x" , "y" , "z" ])
644644 path_calls = [c for c in client .track .mock_calls if c .args [0 ] == "$ld:ai:graph:path" ] # type: ignore
645- assert len (path_calls ) == 1
646- assert g .get_summary ().path == ["a" , "b" ]
645+ assert len (path_calls ) == 2
646+ assert g .get_summary ().path == ["a" , "b" , "x" , "y" , "z" ]
647647
648648
649649def test_ai_graph_tracker_duplicate_tokens_is_ignored (client : LDClient ):
@@ -1236,6 +1236,23 @@ def extract(_r):
12361236 assert len (tool_call_events ) == 2
12371237
12381238
1239+ def test_track_tool_calls_accumulates (client : LDClient ):
1240+ context = Context .create ("user-key" )
1241+ tracker = LDAIConfigTracker (
1242+ ld_client = client , run_id = "test-run-id" , config_key = "config-key" ,
1243+ variation_key = "variation-key" , version = 3 , model_name = "m" ,
1244+ provider_name = "p" , context = context ,
1245+ )
1246+ tracker .track_tool_calls (["foo" , "bar" ])
1247+ tracker .track_tool_calls (["baz" ])
1248+ assert tracker .get_summary ().tool_calls == ["foo" , "bar" , "baz" ]
1249+ tool_call_events = [
1250+ c for c in client .track .mock_calls # type: ignore
1251+ if c .args [0 ] == "$ld:ai:tool_call"
1252+ ]
1253+ assert len (tool_call_events ) == 3
1254+
1255+
12391256def test_track_metrics_of_skips_track_tool_calls_when_absent (client : LDClient ):
12401257 context = Context .create ("user-key" )
12411258 tracker = LDAIConfigTracker (
@@ -1251,7 +1268,7 @@ def extract(_r):
12511268 return LDAIMetrics (success = True , usage = None )
12521269
12531270 tracker .track_metrics_of (extract , fn )
1254- assert tracker .get_summary ().tool_calls is None
1271+ assert tracker .get_summary ().tool_calls == []
12551272 tool_call_events = [
12561273 c for c in client .track .mock_calls # type: ignore
12571274 if c .args [0 ] == "$ld:ai:tool_call"
0 commit comments