Skip to content

Commit 16f7056

Browse files
fix merge conflicts
2 parents bbc086b + 1050f2a commit 16f7056

File tree

3 files changed

+52
-9
lines changed

3 files changed

+52
-9
lines changed

poetry.lock

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ openai = "1.79.0"
2828
pydantic = ">=2"
2929
pymongo = "4.13.0"
3030
instructor = "1.8.2"
31-
pinecone = "6.0.2"
31+
pinecone = "7.0.0"
3232
llama-index-core = "0.12.37"
3333
llama-index-embeddings-openai = "0.3.1"
3434
pypdf = "5.5.0"

tests/unit/repositories/test_memory_repo.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,3 +228,46 @@ def test_find_mongo_error(self, mock_mongo_adapter):
228228
result = repo.find("conversations", {})
229229
assert result == []
230230
mock_mongo_adapter.find.assert_called_once()
231+
232+
@pytest.mark.asyncio
233+
async def test_retrieve_mongo_only_returns_formatted_memory(
234+
self, mock_mongo_adapter
235+
):
236+
"""Test retrieval from MongoDB only, returns formatted memory string."""
237+
# Setup: no Zep, only MongoDB
238+
repo = MemoryRepository(mongo_adapter=mock_mongo_adapter)
239+
# Mock MongoDB find to return a doc with user and assistant messages
240+
mock_mongo_adapter.find.return_value = [
241+
{"user_message": "Hello", "assistant_message": "Hi there"}
242+
]
243+
result = await repo.retrieve("user123")
244+
assert "\nUser: Hello\nAssistant: Hi there" in result
245+
246+
@pytest.mark.asyncio
247+
async def test_retrieve_mongo_only_handles_no_results(self, mock_mongo_adapter):
248+
"""Test retrieval from MongoDB returns empty string if no docs."""
249+
repo = MemoryRepository(mongo_adapter=mock_mongo_adapter)
250+
mock_mongo_adapter.find.return_value = []
251+
result = await repo.retrieve("user123")
252+
assert result == ""
253+
254+
@pytest.mark.asyncio
255+
async def test_retrieve_mongo_only_handles_missing_fields(self, mock_mongo_adapter):
256+
"""Test retrieval from MongoDB skips docs missing required fields."""
257+
repo = MemoryRepository(mongo_adapter=mock_mongo_adapter)
258+
# Missing assistant_message
259+
mock_mongo_adapter.find.return_value = [{"user_message": "Hello"}]
260+
result = await repo.retrieve("user123")
261+
assert result == ""
262+
263+
@pytest.mark.asyncio
264+
async def test_retrieve_mongo_error_logged_and_returns_empty(
265+
self, mock_mongo_adapter
266+
):
267+
"""Test retrieval logs error and returns empty string on exception."""
268+
repo = MemoryRepository(mongo_adapter=mock_mongo_adapter)
269+
mock_mongo_adapter.find.side_effect = Exception("Find error")
270+
with patch("solana_agent.repositories.memory.logger") as mock_logger:
271+
result = await repo.retrieve("user123")
272+
assert result == ""
273+
mock_logger.error.assert_called()

0 commit comments

Comments
 (0)