Skip to main content
Glama
test_integration.py3.32 kB
""" Integration tests for OpenZIM MCP server. """ from pathlib import Path import pytest from openzim_mcp.config import OpenZimMcpConfig from openzim_mcp.server import OpenZimMcpServer class TestOpenZimMcpServerIntegration: """Integration tests for OpenZimMcpServer.""" @pytest.fixture def server(self, test_config: OpenZimMcpConfig) -> OpenZimMcpServer: """Create a test server instance.""" return OpenZimMcpServer(test_config) def test_server_initialization(self, server: OpenZimMcpServer): """Test server initializes correctly.""" assert server.config is not None assert server.path_validator is not None assert server.cache is not None assert server.content_processor is not None assert server.zim_operations is not None assert server.mcp is not None def test_list_zim_files_empty_directory(self, server: OpenZimMcpServer): """Test listing ZIM files in empty directory.""" result = server.zim_operations.list_zim_files() assert "No ZIM files found" in result def test_list_zim_files_with_files(self, server: OpenZimMcpServer, temp_dir: Path): """Test listing ZIM files with actual files.""" # Create test ZIM files zim_file1 = temp_dir / "test1.zim" zim_file2 = temp_dir / "test2.zim" zim_file1.write_text("test content 1") zim_file2.write_text("test content 2") result = server.zim_operations.list_zim_files() assert "Found 2 ZIM files" in result assert "test1.zim" in result assert "test2.zim" in result def test_search_zim_file_invalid_path(self, server: OpenZimMcpServer): """Test searching with invalid ZIM file path.""" with pytest.raises(Exception): # Should raise security or validation error server.zim_operations.search_zim_file("/invalid/path.zim", "test") def test_get_zim_entry_invalid_path(self, server: OpenZimMcpServer): """Test getting entry with invalid ZIM file path.""" with pytest.raises(Exception): # Should raise security or validation error server.zim_operations.get_zim_entry("/invalid/path.zim", "A/Test") def test_server_health_check(self, server: OpenZimMcpServer): """Test server health check functionality.""" # Access the health check tool through the server's tools # This would require accessing the registered MCP tools # For now, test the cache stats directly stats = server.cache.stats() assert "enabled" in stats assert "size" in stats assert "max_size" in stats assert "ttl_seconds" in stats def test_cache_integration(self, server: OpenZimMcpServer, temp_dir: Path): """Test cache integration with ZIM operations.""" # Create a test ZIM file zim_file = temp_dir / "test.zim" zim_file.write_text("test content") # First call should populate cache result1 = server.zim_operations.list_zim_files() # Second call should use cache result2 = server.zim_operations.list_zim_files() # Results should be identical assert result1 == result2 # Cache should have entries stats = server.cache.stats() assert stats["size"] > 0

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/cameronrye/openzim-mcp'

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