"""Memory V2 - message_processing 辅助函数测试。""" from __future__ import annotations from langchain_core.messages import AIMessage, HumanMessage from deerflow.agents.memory.message_processing import count_user_turns, filter_messages_for_memory class TestCountUserTurns: def test_empty(self): assert count_user_turns([]) == 0 def test_counts_only_human_messages(self): messages = [ HumanMessage(content="问题一"), AIMessage(content="回答一"), HumanMessage(content="问题二"), AIMessage(content="回答二"), ] assert count_user_turns(messages) == 2 def test_ignores_ai_messages(self): messages = [AIMessage(content="a"), AIMessage(content="b")] assert count_user_turns(messages) == 0 def test_works_on_filtered_output(self): # count_user_turns 设计上吃 filter_messages_for_memory 的输出 raw = [ HumanMessage(content="第一轮"), AIMessage(content="", tool_calls=[{"name": "x", "args": {}, "id": "1"}]), AIMessage(content="第一轮回答"), HumanMessage(content="第二轮"), AIMessage(content="第二轮回答"), ] filtered = filter_messages_for_memory(raw) assert count_user_turns(filtered) == 2