Skip to main content
Glama
by nykznykz
test_server.pyโ€ข4.25 kB
"""Test cases for server utilities and configuration.""" import logging from unittest.mock import patch import pytest from mcp_server.server import ServerConfig, setup_logging class TestServerConfig: """Test cases for ServerConfig class.""" def test_server_config_initialization(self): """Test ServerConfig initialization with default values.""" config = ServerConfig() assert config.name == "Example MCP Server" assert config.version == "0.1.0" assert config.max_connections == 100 assert config.timeout == 30 assert config.log_level == logging.INFO def test_server_config_to_dict(self): """Test ServerConfig to_dict method.""" config = ServerConfig() config_dict = config.to_dict() expected_keys = {"name", "version", "max_connections", "timeout", "log_level"} assert set(config_dict.keys()) == expected_keys assert config_dict["name"] == "Example MCP Server" assert config_dict["version"] == "0.1.0" assert config_dict["max_connections"] == 100 assert config_dict["timeout"] == 30 assert config_dict["log_level"] == logging.INFO def test_server_config_modification(self): """Test ServerConfig value modification.""" config = ServerConfig() config.name = "Custom Server" config.max_connections = 50 assert config.name == "Custom Server" assert config.max_connections == 50 config_dict = config.to_dict() assert config_dict["name"] == "Custom Server" assert config_dict["max_connections"] == 50 class TestSetupLogging: """Test cases for setup_logging function.""" @patch("mcp_server.server.logging.basicConfig") @patch("mcp_server.server.logging.getLogger") def test_setup_logging_default_level(self, mock_get_logger, mock_basic_config): """Test setup_logging with default level.""" mock_logger = mock_get_logger.return_value setup_logging() # Verify basicConfig was called with correct parameters mock_basic_config.assert_called_once_with( level=logging.INFO, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) # Verify specific loggers were configured assert mock_get_logger.call_count >= 2 mock_logger.setLevel.assert_called() @patch("mcp_server.server.logging.basicConfig") @patch("mcp_server.server.logging.getLogger") def test_setup_logging_custom_level(self, mock_get_logger, mock_basic_config): """Test setup_logging with custom level.""" mock_logger = mock_get_logger.return_value setup_logging(level=logging.DEBUG) # Verify basicConfig was called with DEBUG level mock_basic_config.assert_called_once_with( level=logging.DEBUG, format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) # Verify loggers were set to DEBUG level mock_logger.setLevel.assert_called_with(logging.DEBUG) @patch("mcp_server.server.logging.basicConfig") @patch("mcp_server.server.logging.getLogger") def test_setup_logging_logger_names(self, mock_get_logger, mock_basic_config): """Test that setup_logging configures the correct logger names.""" setup_logging() # Check that the correct logger names were requested logger_calls = [call[0][0] for call in mock_get_logger.call_args_list] assert "mcp_server" in logger_calls assert "fastmcp" in logger_calls @pytest.mark.parametrize( "log_level", [ logging.DEBUG, logging.INFO, logging.WARNING, logging.ERROR, logging.CRITICAL, ], ) @patch("mcp_server.server.logging.basicConfig") def test_setup_logging_various_levels(self, mock_basic_config, log_level): """Test setup_logging with various log levels.""" setup_logging(level=log_level) mock_basic_config.assert_called_once() args, kwargs = mock_basic_config.call_args assert kwargs["level"] == log_level

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/nykznykz/mcp_example'

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