Files
basicmachines-co-basic-memory/tests/mcp/test_open_nodes.py
T
2024-12-23 21:48:05 -06:00

64 lines
2.2 KiB
Python

# """Tests for MCP open_nodes tool."""
#
# import pytest
# from mcp.types import EmbeddedResource
#
# from basic_memory.mcp.server import MIME_TYPE, handle_call_tool
# from basic_memory.schemas import OpenNodesResponse, CreateEntityResponse
#
#
# @pytest.mark.asyncio
# async def test_open_nodes(app):
# """Test retrieving specific nodes by name."""
# # Create test entities
# entity_data = {
# "entities": [
# {
# "name": "OpenTestA",
# "entity_type": "test",
# "observations": ["First test entity"],
# },
# {
# "name": "OpenTestB",
# "entity_type": "test",
# "observations": ["Second test entity"],
# },
# {
# "name": "OpenTestC",
# "entity_type": "test",
# "observations": ["Third test entity"],
# },
# ]
# }
#
# create_entity_result = await handle_call_tool("create_entities", entity_data)
# create_entity_response = CreateEntityResponse.model_validate_json(
# create_entity_result[0].resource.text # pyright: ignore [reportAttributeAccessIssue]
# )
# entity_a = create_entity_response.entities[0]
# entity_b = create_entity_response.entities[1]
#
# # Open specific nodes
# result = await handle_call_tool("open_nodes", {"entity_ids": [entity_a.id, entity_b.id]})
#
# # Verify response format
# assert len(result) == 1
# assert isinstance(result[0], EmbeddedResource)
# assert result[0].type == "resource"
# assert result[0].resource.mimeType == MIME_TYPE
#
# # Verify entities returned
# response = OpenNodesResponse.model_validate_json(result[0].resource.text) # pyright: ignore [reportAttributeAccessIssue]
# assert len(response.entities) == 2
#
# # Entities should be returned in same order as requested
# assert response.entities[0].name == "OpenTestA"
# assert response.entities[1].name == "OpenTestB"
#
# # Verify entity content
# entity = response.entities[0]
# assert entity.id == entity_a.id
# assert entity.entity_type == "test"
# assert len(entity.observations) == 1
# assert entity.observations[0].content == "First test entity"