Skip to main content
Glama
test_config.py2.21 kB
""" Tests for configuration management component. """ import json import os import tempfile from unittest.mock import mock_open, patch import pytest from src.mcp_freecad.server.components.config import ( _merge_configs, get_config, get_server_name, get_server_version, load_config, ) class TestConfigManagement: """Test configuration loading and management.""" def test_load_default_config(self): """Test loading default configuration when no file exists.""" with patch("os.path.exists", return_value=False): config = load_config("nonexistent.json") assert config["server"]["name"] == "advanced-freecad-mcp-server" assert config["server"]["version"] == "0.7.11" assert config["freecad"]["host"] == "localhost" assert config["freecad"]["port"] == 12345 def test_load_config_from_file(self): """Test loading configuration from file.""" test_config = { "server": {"name": "test-server", "version": "1.0.0"}, "freecad": {"host": "remote", "port": 54321}, } with patch("os.path.exists", return_value=True): with patch("builtins.open", mock_open(read_data=json.dumps(test_config))): config = load_config("test.json") assert config["server"]["name"] == "test-server" assert config["freecad"]["host"] == "remote" # Should merge with defaults assert "auto_connect" in config["freecad"] def test_merge_configs(self): """Test configuration merging.""" default = {"a": 1, "b": {"x": 1, "y": 2}} override = {"b": {"x": 10}, "c": 3} result = _merge_configs(default, override) assert result["a"] == 1 assert result["b"]["x"] == 10 assert result["b"]["y"] == 2 assert result["c"] == 3 def test_get_server_info(self): """Test server info getters.""" test_config = {"server": {"name": "custom-server", "version": "2.0.0"}} with patch("src.mcp_freecad.server.components.config.CONFIG", test_config): assert get_server_name() == "custom-server" assert get_server_version() == "2.0.0"

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/jango-blockchained/mcp-freecad'

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