22
33from langchain_core .messages import AIMessage , HumanMessage , ToolMessage
44
5- from uipath_langchain .agent .react .utils import count_successive_completions
5+ from uipath_langchain .agent .react .utils import count_consecutive_thinking_messages
66
77
88class TestCountSuccessiveCompletions :
99 """Test successive completions calculation from message history."""
1010
1111 def test_empty_messages (self ):
1212 """Should return 0 for empty message list."""
13- assert count_successive_completions ([]) == 0
13+ assert count_consecutive_thinking_messages ([]) == 0
1414
1515 def test_no_ai_messages (self ):
1616 """Should return 0 when no AI messages exist."""
1717 messages = [HumanMessage (content = "test" )]
18- assert count_successive_completions (messages ) == 0
18+ assert count_consecutive_thinking_messages (messages ) == 0
1919
2020 def test_last_message_not_ai (self ):
2121 """Should return 0 when last message is not AI."""
2222 messages = [
2323 AIMessage (content = "response" ),
2424 HumanMessage (content = "follow-up" ),
2525 ]
26- assert count_successive_completions (messages ) == 0
26+ assert count_consecutive_thinking_messages (messages ) == 0
2727
2828 def test_ai_message_with_tool_calls (self ):
2929 """Should return 0 when last AI message has tool calls."""
@@ -34,23 +34,23 @@ def test_ai_message_with_tool_calls(self):
3434 tool_calls = [{"name" : "test" , "args" : {}, "id" : "call_1" }],
3535 ),
3636 ]
37- assert count_successive_completions (messages ) == 0
37+ assert count_consecutive_thinking_messages (messages ) == 0
3838
3939 def test_ai_message_without_content (self ):
4040 """Should return 0 when last AI message has no content."""
4141 messages = [
4242 HumanMessage (content = "query" ),
4343 AIMessage (content = "" ),
4444 ]
45- assert count_successive_completions (messages ) == 0
45+ assert count_consecutive_thinking_messages (messages ) == 0
4646
4747 def test_single_text_completion (self ):
4848 """Should count single text-only AI message."""
4949 messages = [
5050 HumanMessage (content = "query" ),
5151 AIMessage (content = "thinking" ),
5252 ]
53- assert count_successive_completions (messages ) == 1
53+ assert count_consecutive_thinking_messages (messages ) == 1
5454
5555 def test_two_successive_completions (self ):
5656 """Should count multiple consecutive text-only AI messages."""
@@ -59,7 +59,7 @@ def test_two_successive_completions(self):
5959 AIMessage (content = "thinking 1" ),
6060 AIMessage (content = "thinking 2" ),
6161 ]
62- assert count_successive_completions (messages ) == 2
62+ assert count_consecutive_thinking_messages (messages ) == 2
6363
6464 def test_three_successive_completions (self ):
6565 """Should count all consecutive text-only AI messages at end."""
@@ -69,7 +69,7 @@ def test_three_successive_completions(self):
6969 AIMessage (content = "thinking 2" ),
7070 AIMessage (content = "thinking 3" ),
7171 ]
72- assert count_successive_completions (messages ) == 3
72+ assert count_consecutive_thinking_messages (messages ) == 3
7373
7474 def test_tool_call_resets_count (self ):
7575 """Should only count completions after last tool call."""
@@ -84,7 +84,7 @@ def test_tool_call_resets_count(self):
8484 AIMessage (content = "thinking 2" ),
8585 AIMessage (content = "thinking 3" ),
8686 ]
87- assert count_successive_completions (messages ) == 2
87+ assert count_consecutive_thinking_messages (messages ) == 2
8888
8989 def test_mixed_message_types (self ):
9090 """Should handle complex message patterns correctly."""
@@ -100,7 +100,7 @@ def test_mixed_message_types(self):
100100 HumanMessage (content = "user follow-up" ),
101101 AIMessage (content = "responding to follow-up" ),
102102 ]
103- assert count_successive_completions (messages ) == 1
103+ assert count_consecutive_thinking_messages (messages ) == 1
104104
105105 def test_multiple_tool_calls_in_message (self ):
106106 """Should reset count even with multiple tool calls."""
@@ -115,15 +115,15 @@ def test_multiple_tool_calls_in_message(self):
115115 ],
116116 ),
117117 ]
118- assert count_successive_completions (messages ) == 0
118+ assert count_consecutive_thinking_messages (messages ) == 0
119119
120120 def test_ai_message_with_empty_tool_calls_list (self ):
121121 """Should handle AI message with empty tool_calls list."""
122122 messages = [
123123 HumanMessage (content = "query" ),
124124 AIMessage (content = "thinking" , tool_calls = []),
125125 ]
126- assert count_successive_completions (messages ) == 1
126+ assert count_consecutive_thinking_messages (messages ) == 1
127127
128128 def test_only_ai_messages_all_text (self ):
129129 """Should count all AI messages when all are text-only."""
@@ -132,4 +132,4 @@ def test_only_ai_messages_all_text(self):
132132 AIMessage (content = "thought 2" ),
133133 AIMessage (content = "thought 3" ),
134134 ]
135- assert count_successive_completions (messages ) == 3
135+ assert count_consecutive_thinking_messages (messages ) == 3
0 commit comments