Skip to main content
Glama
test_efficiency.py2.83 kB
import pytest from unittest.mock import MagicMock, patch import json # import asyncio - removed unused import from mcp_kql_server.memory import MemoryManager from mcp_kql_server.mcp_server import _schema_find_tables_operation class TestEfficiencyFeatures: @pytest.fixture def memory_manager(self): # Use in-memory DB for testing mm = MemoryManager(":memory:") # Mock semantic search to avoid loading model mm.semantic_search = MagicMock() mm.semantic_search.encode.return_value = b'\x00' * 4 # Dummy float32 bytes return mm def test_semantic_table_search(self, memory_manager): """Test storing schema with embedding and finding relevant tables.""" # Store schema memory_manager.store_schema("cluster1", "db1", "Users", {"columns": {"Name": "string", "Email": "string"}}) memory_manager.store_schema("cluster1", "db1", "Logs", {"columns": {"Timestamp": "datetime", "Level": "string"}}) # Mock find_relevant_tables to return results (since we mocked encode) with patch.object(memory_manager, 'find_relevant_tables') as mock_find: mock_find.return_value = [{"table": "Users", "score": 0.9}] results = memory_manager.find_relevant_tables("cluster1", "db1", "user data") assert len(results) == 1 assert results[0]["table"] == "Users" def test_query_caching(self, memory_manager): """Test caching query results.""" query = "Table | take 10" result = json.dumps([{"col": "val"}]) # Cache result memory_manager.cache_query_result(query, result, 1) # Retrieve result cached = memory_manager.get_cached_result(query) assert cached == result # Retrieve non-existent assert memory_manager.get_cached_result("other query") is None def test_join_hints(self, memory_manager): """Test storing and retrieving join hints.""" memory_manager.store_join_hint("TableA", "TableB", "A.id == B.id") hints = memory_manager.get_join_hints(["TableA", "TableC"]) assert len(hints) == 1 assert "TableA joins with TableB on A.id == B.id" in hints[0] @pytest.mark.asyncio async def test_find_tables_operation(self): """Test the exposed find_tables operation.""" with patch('mcp_kql_server.mcp_server.memory_manager') as mock_mm: mock_mm.find_relevant_tables.return_value = [{"table": "T1", "score": 0.8}] result = await _schema_find_tables_operation("c", "d", "q") data = json.loads(result) assert data["success"] is True assert len(data["tables"]) == 1 assert data["tables"][0]["table"] == "T1"

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/4R9UN/mcp-kql-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server