Add generic memory gateway v1
This commit is contained in:
53
tests/test_evermemos_service.py
Normal file
53
tests/test_evermemos_service.py
Normal file
@ -0,0 +1,53 @@
|
||||
import asyncio
|
||||
|
||||
from memory_gateway.evermemos_service import ConsolidateRequest, consolidate_session
|
||||
|
||||
|
||||
def test_evermemos_service_consolidates_session(monkeypatch, tmp_path):
|
||||
monkeypatch.setattr(
|
||||
"memory_gateway.obsidian_review.get_config",
|
||||
lambda: type(
|
||||
"Config",
|
||||
(),
|
||||
{
|
||||
"obsidian": type(
|
||||
"Obsidian",
|
||||
(),
|
||||
{"vault_path": str(tmp_path / "vault"), "review_dir": "Reviews/Queue"},
|
||||
)()
|
||||
},
|
||||
)(),
|
||||
)
|
||||
payload = {
|
||||
"session_id": "sess_service",
|
||||
"context": {"user_id": "user_a", "agent_id": "agent_a", "workspace_id": "ws_a", "session_id": "sess_service"},
|
||||
"episodes": [
|
||||
{
|
||||
"user_id": "user_a",
|
||||
"agent_id": "agent_a",
|
||||
"workspace_id": "ws_a",
|
||||
"session_id": "sess_service",
|
||||
"namespace": "session/sess_service/episodic",
|
||||
"content": "结论:EverMemOS 本地服务负责整理稳定长期记忆。",
|
||||
"tags": ["decision"],
|
||||
},
|
||||
{
|
||||
"user_id": "user_a",
|
||||
"agent_id": "agent_a",
|
||||
"workspace_id": "ws_a",
|
||||
"session_id": "sess_service",
|
||||
"namespace": "session/sess_service/episodic",
|
||||
"content": "重要:高价值记忆应该进入 Obsidian review queue。",
|
||||
"tags": ["review", "high-value"],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
response = asyncio.run(consolidate_session(ConsolidateRequest.model_validate(payload)))
|
||||
|
||||
assert response["status"] == "ok"
|
||||
result = response["result"]
|
||||
assert result["episodes"] == 2
|
||||
assert len(result["candidates"]) == 2
|
||||
assert len(result["promoted"]) == 1
|
||||
assert len(result["review_drafts"]) == 1
|
||||
Reference in New Issue
Block a user