From 9d7a3d66c07dc0bb5cf0a894022b4b6b4eada454 Mon Sep 17 00:00:00 2001 From: catalini82 Date: Fri, 12 Jun 2026 00:21:30 +0300 Subject: [PATCH] test(memory): cover owner isolation for memory search Co-authored-by: Cata Co-authored-by: Alexandre Teixeira <111787685+alteixeira20@users.noreply.github.com> --- tests/test_memory_owner_isolation.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 tests/test_memory_owner_isolation.py diff --git a/tests/test_memory_owner_isolation.py b/tests/test_memory_owner_isolation.py new file mode 100644 index 000000000..ff32b9cd1 --- /dev/null +++ b/tests/test_memory_owner_isolation.py @@ -0,0 +1,28 @@ +from unittest.mock import MagicMock + +import routes.memory_routes as memory_routes +from src.memory import MemoryManager + + +def test_memory_search_returns_only_callers_memories(monkeypatch, tmp_path): + manager = MemoryManager(str(tmp_path)) + alice_memory = manager.add_entry("Project codename is Odyssey", owner="alice") + bob_memory = manager.add_entry("Project codename is Odyssey", owner="bob") + manager.save([alice_memory, bob_memory]) + + monkeypatch.setattr(memory_routes, "get_current_user", lambda request: "bob") + router = memory_routes.setup_memory_routes(manager, MagicMock()) + search = next( + route.endpoint + for route in router.routes + if route.path == "/api/memory/search" and "POST" in route.methods + ) + + result = search( + request=None, + query="Project codename is Odyssey", + session_id=None, + category=None, + ) + + assert [memory["id"] for memory in result["memories"]] == [bob_memory["id"]]