pypi-query-mcp/tests/test_basic.py
longhao a0c507c3ff feat: implement comprehensive configuration management system with multi-mirror support
- Add ServerSettings class with pydantic-settings for type-safe configuration
- Support multiple PyPI mirror sources with priority-based fallback mechanism
- Implement RepositoryConfig and RepositoryManager for multi-repository support
- Add environment variable support for all configuration options
- Include private repository authentication configuration
- Add advanced dependency analysis settings (max depth, concurrency, security)
- Provide secure credential management with sensitive data masking
- Update documentation and configuration examples
- Add comprehensive test suite with 23 test cases covering all features
- Include demo script showcasing multi-mirror configuration capabilities

Configuration features:
- Primary, additional, and fallback index URLs
- Automatic duplicate URL removal with priority preservation
- Runtime configuration reloading
- Integration with repository manager for seamless multi-source queries

Signed-off-by: longhao <hal.long@outlook.com>
2025-05-27 17:41:42 +08:00

79 lines
2.2 KiB
Python

"""Basic tests for PyPI Query MCP Server."""
import pytest
from pypi_query_mcp import __version__
def test_version():
"""Test that version is defined."""
assert __version__ == "0.1.0"
def test_import():
"""Test that main modules can be imported."""
from pypi_query_mcp.core import PyPIClient, VersionCompatibility
from pypi_query_mcp.server import mcp
assert PyPIClient is not None
assert VersionCompatibility is not None
assert mcp is not None
@pytest.mark.asyncio
async def test_pypi_client_basic():
"""Test basic PyPI client functionality."""
from pypi_query_mcp.core import PyPIClient
async with PyPIClient() as client:
# Test that client can be created and closed
assert client is not None
# Test cache clearing
client.clear_cache()
def test_version_compatibility():
"""Test version compatibility utility."""
from pypi_query_mcp.core import VersionCompatibility
compat = VersionCompatibility()
# Test requires_python parsing
spec = compat.parse_requires_python(">=3.8")
assert spec is not None
# Test classifier extraction
classifiers = [
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: Implementation :: CPython",
]
versions = compat.extract_python_versions_from_classifiers(classifiers)
assert "3.8" in versions
assert "3.9" in versions
implementations = compat.extract_python_implementations(classifiers)
assert "CPython" in implementations
def test_mcp_tools_import():
"""Test that MCP tools can be imported."""
from pypi_query_mcp.tools import (
check_python_compatibility,
get_compatible_python_versions,
query_package_dependencies,
query_package_info,
query_package_versions,
suggest_python_version_for_packages,
)
# Test that all tools are callable
assert callable(query_package_info)
assert callable(query_package_versions)
assert callable(query_package_dependencies)
assert callable(check_python_compatibility)
assert callable(get_compatible_python_versions)
assert callable(suggest_python_version_for_packages)