Files
memory-gateway/plugins/memory-gateway-agent/tests/test_tools.py

107 lines
3.1 KiB
Python

from __future__ import annotations
from memory_gateway_plugin.tools import memory_append_episode, memory_feedback, memory_search, memory_upsert
class FakeClient:
def __init__(self):
self.calls = []
def search_memory(self, payload):
self.calls.append(("search", payload))
return {"ok": True, "data": {"results": []}}
def append_episode(self, payload):
self.calls.append(("append", payload))
return {"ok": True, "data": payload}
def upsert_memory(self, payload):
self.calls.append(("upsert", payload))
return {"ok": True, "data": payload}
def send_feedback(self, memory_id, payload):
self.calls.append(("feedback", memory_id, payload))
return {"ok": True, "data": payload}
def test_memory_search_empty_query_rejected():
client = FakeClient()
result = memory_search(query="", user_id="u", agent_id="a", client=client)
assert result["ok"] is False
assert client.calls == []
def test_append_episode_rejects_api_key():
result = memory_append_episode(
user_id="u",
agent_id="a",
session_id="s",
episode_summary="api_key=sk-secret",
client=FakeClient(),
)
assert result["ok"] is False
assert result["reason"] == "secret_like_content"
def test_append_episode_rejects_password():
result = memory_append_episode(
user_id="u",
agent_id="a",
session_id="s",
episode_summary="password=hunter2",
client=FakeClient(),
)
assert result["ok"] is False
assert result["reason"] == "secret_like_content"
def test_append_episode_rejects_raw_transcript():
content = "\n".join(["User: hi", "Assistant: hello", "User: remember this", "Assistant: ok"])
result = memory_append_episode(user_id="u", agent_id="a", session_id="s", episode_summary=content, client=FakeClient())
assert result["ok"] is False
assert result["reason"] == "raw_chat_transcript"
def test_append_episode_accepts_stable_preference():
client = FakeClient()
result = memory_append_episode(
user_id="u",
agent_id="a",
session_id="s",
episode_summary="用户稳定偏好:以后所有技术方案都使用中文输出。",
tags=["preference"],
client=client,
)
assert result["ok"] is True
assert client.calls[0][0] == "append"
def test_upsert_uses_long_term_namespace_when_provided():
client = FakeClient()
namespace = "user/u/long_term"
result = memory_upsert(
user_id="u",
agent_id="a",
namespace=namespace,
memory_type="preference",
content="用户稳定偏好:使用中文输出。",
client=client,
)
assert result["ok"] is True
assert client.calls[0][1]["namespace"] == namespace
def test_feedback_calls_correct_endpoint():
client = FakeClient()
result = memory_feedback(user_id="u", agent_id="a", memory_id="mem_1", feedback="reject", client=client)
assert result["ok"] is True
assert client.calls[0] == ("feedback", "mem_1", {"user_id": "u", "agent_id": "a", "feedback": "incorrect", "comment": None})