This commit implements a comprehensive test suite for the HTTP wrapper components.
Test coverage:
- test_config.py: Configuration loader and validation tests
- Required field validation
- URL validation and formatting
- Port range validation
- Tool list parsing (enabled/disabled)
- Environment variable generation
- .env file loading
- test_filtering.py: Tool filtering tests
- Passthrough mode (no filtering)
- Whitelist mode (enabled_tools)
- Blacklist mode (disabled_tools)
- Tool list filtering
- MCP response filtering
- Edge cases (empty lists, missing names)
- test_middleware.py: HTTP authentication tests
- BearerAuthMiddleware with/without token
- Valid/invalid token handling
- Missing/malformed Authorization headers
- HTTP status codes (401, 403)
- HealthCheckBypassMiddleware
- Custom health check paths
- Middleware ordering
Test infrastructure:
- conftest.py: Shared fixtures for common test data
- pytest.ini: Test configuration and markers
- Updated dev dependencies with test frameworks
Test execution:
- Run all tests: pytest
- Run with coverage: pytest --cov=gitea_http_wrapper
- Run specific test: pytest src/gitea_http_wrapper/tests/test_config.py
This test suite validates all wrapper components except the main server (which would require integration tests with a real Gitea MCP server).
Closes#17
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit establishes the proper architecture for an HTTP transport wrapper around the official Gitea MCP server, replacing the incorrect standalone implementation.
New structure:
- src/gitea_http_wrapper/ (main package)
- config/ (configuration loader)
- middleware/ (HTTP auth middleware)
- filtering/ (tool filtering for Claude Desktop)
- tests/ (wrapper test suite)
Updated dependencies:
- mcp>=0.9.0 (MCP SDK for HTTP transport)
- uvicorn>=0.27.0 (ASGI server)
- pydantic>=2.0.0 (config validation)
- pydantic-settings>=2.0.0 (settings management)
- gitea-mcp-server>=0.1.0 (official Gitea MCP to wrap)
Created requirements.txt for Docker deployment convenience.
This architecture correctly separates concerns:
1. Official Gitea MCP server handles Gitea API operations
2. HTTP wrapper provides transport, auth, and filtering
Closes#10
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>