Python: Update _provider.py (#2548)

* Update _provider.py

* Update test_mem0_context_provider.py

* Update test_mem0_context_provider.py

Ruff linting fixes

* Update test_mem0_context_provider.py

---------

Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
This commit is contained in:
mdxw73
2025-12-03 19:54:05 +00:00
committed by GitHub
Unverified
parent a81279d960
commit 3cfd34836f
2 changed files with 30 additions and 0 deletions
@@ -146,6 +146,10 @@ class Mem0Provider(ContextProvider):
messages_list = [messages] if isinstance(messages, ChatMessage) else list(messages)
input_text = "\n".join(msg.text for msg in messages_list if msg and msg.text and msg.text.strip())
# Validate input text is not empty before searching (possible for function approval responses)
if not input_text.strip():
return Context(messages=None)
search_response: MemorySearchResponse_v1_1 | MemorySearchResponse_v2 = await self.mem0_client.search( # type: ignore[misc]
query=input_text,
user_id=self.user_id,
@@ -406,6 +406,32 @@ class TestMem0ProviderModelInvoking:
assert isinstance(context, Context)
assert not context.messages
async def test_model_invoking_function_approval_response_returns_none_instructions(
self, mock_mem0_client: AsyncMock
) -> None:
"""Test invoking with function approval response content messages returns context with None instructions."""
from agent_framework import FunctionApprovalResponseContent, FunctionCallContent
provider = Mem0Provider(user_id="user123", mem0_client=mock_mem0_client)
function_call = FunctionCallContent(call_id="1", name="test_func", arguments='{"arg1": "value1"}')
message = ChatMessage(
role=Role.USER,
contents=[
FunctionApprovalResponseContent(
id="approval_1",
function_call=function_call,
approved=True,
)
],
)
mock_mem0_client.search.return_value = []
context = await provider.invoking(message)
assert isinstance(context, Context)
assert not context.messages
async def test_model_invoking_filters_empty_message_text(self, mock_mem0_client: AsyncMock) -> None:
"""Test that empty message text is filtered out from query."""
provider = Mem0Provider(user_id="user123", mem0_client=mock_mem0_client)