Skip to main content
Glama

Solr MCP

by allenday
test_solr_default_vectorizer.py3.68 kB
"""Tests for solr_default_vectorizer tool.""" from unittest.mock import AsyncMock, MagicMock, patch import pytest from solr_mcp.tools.solr_default_vectorizer import get_default_text_vectorizer from solr_mcp.vector_provider.constants import DEFAULT_OLLAMA_CONFIG, MODEL_DIMENSIONS class TestDefaultVectorizerTool: """Test cases for default_text_vectorizer tool.""" @pytest.mark.asyncio async def test_get_default_text_vectorizer_with_server(self): """Test getting default vectorizer with a server instance.""" # Create mock server mock_vector_manager = MagicMock() mock_vector_manager.client.model = "nomic-embed-text" mock_vector_manager.client.base_url = "http://test-host:8888" mock_solr_client = MagicMock() mock_solr_client.vector_manager = mock_vector_manager mock_server = MagicMock() mock_server.solr_client = mock_solr_client # Execute tool result = await get_default_text_vectorizer(mock_server) # Verify result assert result["vector_provider_model"] == "nomic-embed-text" assert result["vector_provider_dimension"] == 768 assert result["vector_provider_host"] == "test-host" assert result["vector_provider_port"] == 8888 assert result["vector_provider_url"] == "http://test-host:8888" assert result["vector_provider_spec"] == "nomic-embed-text@test-host:8888" @pytest.mark.asyncio async def test_get_default_text_vectorizer_without_server(self): """Test getting default vectorizer without a server instance.""" # Create a server without vector_manager mock_server = MagicMock(spec=["no_solr_client"]) # Use patch to avoid trying to parse MagicMock as URL with patch( "solr_mcp.vector_provider.constants.DEFAULT_OLLAMA_CONFIG", { "model": "nomic-embed-text", "base_url": "http://localhost:11434", "timeout": 30, "retries": 3, }, ): # Execute tool result = await get_default_text_vectorizer(mock_server) # Verify result uses defaults assert result["vector_provider_model"] == DEFAULT_OLLAMA_CONFIG["model"] assert ( result["vector_provider_dimension"] == MODEL_DIMENSIONS[DEFAULT_OLLAMA_CONFIG["model"]] ) assert result["vector_provider_host"] == "localhost" assert result["vector_provider_port"] == 11434 assert result["vector_provider_url"] == DEFAULT_OLLAMA_CONFIG["base_url"] assert ( result["vector_provider_spec"] == f"{DEFAULT_OLLAMA_CONFIG['model']}@localhost:11434" ) @pytest.mark.asyncio async def test_get_default_text_vectorizer_unknown_model(self): """Test getting default vectorizer with unknown model.""" # Create mock server mock_vector_manager = MagicMock() mock_vector_manager.client.model = "unknown-model" mock_vector_manager.client.base_url = "http://test-host:8888" mock_solr_client = MagicMock() mock_solr_client.vector_manager = mock_vector_manager mock_server = MagicMock() mock_server.solr_client = mock_solr_client # Execute tool result = await get_default_text_vectorizer(mock_server) # Verify result with default dimension for unknown model assert result["vector_provider_model"] == "unknown-model" assert result["vector_provider_dimension"] == 768 # Default dimension assert result["vector_provider_spec"] == "unknown-model@test-host:8888"

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/allenday/solr-mcp'

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