# """Tests for the MCP server implementation using FastAPI TestClient.""" # # import pytest # # from basic_memory.mcp.server import handle_call_tool # from basic_memory.schemas import SearchNodesResponse, CreateEntityResponse # # # @pytest.mark.asyncio # async def test_create_relations(app): # """Test creating relations between entities.""" # # Create two test entities # entity_data = { # "entities": [ # {"name": "TestEntityA", "entity_type": "test", "observations": ["Entity A"]}, # {"name": "TestEntityB", "entity_type": "test", "observations": ["Entity B"]}, # ] # } # # 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] # ) # # from_entity = create_entity_response.entities[0] # to_entity = create_entity_response.entities[1] # # Create relation between them # relation_data = { # "relations": [ # { # "from_id": from_entity.id, # "to_id": to_entity.id, # "relation_type": "relates_to", # } # ] # } # # result = await handle_call_tool("create_relations", relation_data) # # # Verify through search # search_result = await handle_call_tool("search_nodes", {"query": "TestEntityA"}) # response = SearchNodesResponse.model_validate_json(search_result[0].resource.text) # pyright: ignore [reportAttributeAccessIssue] # # assert len(response.matches) == 1 # entity = response.matches[0] # assert len(entity.relations) == 1 # assert entity.relations[0].to_id == to_entity.id # assert entity.relations[0].relation_type == "relates_to"