Skip to main content
Glama
isdaniel

PostgreSQL-Performance-Tuner-Mcp

conftest.py2.94 kB
"""Pytest configuration and fixtures.""" import asyncio from unittest.mock import AsyncMock, MagicMock import pytest @pytest.fixture(scope="session") def event_loop(): """Create an event loop for the test session.""" loop = asyncio.get_event_loop_policy().new_event_loop() yield loop loop.close() @pytest.fixture def mock_sql_driver(): """Create a mock SQL driver for testing.""" driver = AsyncMock() driver.execute_query = AsyncMock(return_value=[]) return driver @pytest.fixture def mock_hypopg_service(): """Create a mock HypoPG service for testing.""" from pgtuner_mcp.services.hypopg_service import HypoPGStatus, HypotheticalIndex service = AsyncMock() # check_status returns HypoPGStatus service.check_status = AsyncMock(return_value=HypoPGStatus( is_installed=True, is_available=True, version="1.3.1", message="HypoPG extension is installed and ready." )) # create_index returns HypotheticalIndex service.create_index = AsyncMock(return_value=HypotheticalIndex( indexrelid=12345, index_name="hypo_idx_test", table_name="users", schema_name="public", am_name="btree", definition="CREATE INDEX ON public.users USING btree (email)", estimated_size=8192 )) # list_indexes returns list of HypotheticalIndex service.list_indexes = AsyncMock(return_value=[]) service.drop_index = AsyncMock(return_value=True) service.reset = AsyncMock(return_value=True) service.get_index_size = AsyncMock(return_value=8192) return service @pytest.fixture def mock_index_advisor(mock_sql_driver, mock_hypopg_service): """Create a mock Index Advisor for testing.""" from pgtuner_mcp.services.index_advisor import WorkloadAnalysisResult, IndexRecommendation advisor = AsyncMock() advisor.driver = mock_sql_driver advisor.hypopg = mock_hypopg_service # analyze_workload returns WorkloadAnalysisResult advisor.analyze_workload = AsyncMock(return_value=WorkloadAnalysisResult( recommendations=[], analyzed_queries=0, total_improvement=None, error=None )) # analyze_queries returns WorkloadAnalysisResult advisor.analyze_queries = AsyncMock(return_value=WorkloadAnalysisResult( recommendations=[], analyzed_queries=0, total_improvement=None, error=None )) # analyze_query returns WorkloadAnalysisResult advisor.analyze_query = AsyncMock(return_value=WorkloadAnalysisResult( recommendations=[], analyzed_queries=1, total_improvement=None, error=None )) return advisor @pytest.fixture def mock_db_pool(): """Create a mock database connection pool.""" pool = AsyncMock() pool.connect = AsyncMock() pool.close = AsyncMock() pool.get_pool = MagicMock(return_value=AsyncMock()) return pool

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/isdaniel/pgtuner-mcp'

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