Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
782cd88
docs: Add CLAUDE.md with WebCat MCP project guidance
T-rav Oct 2, 2025
db0d9bc
feat: Add development mode with auto-reload support
T-rav Oct 2, 2025
41224f8
refactor: Migrate dependency management to pyproject.toml
T-rav Oct 2, 2025
0423076
refactor: Remove requirements.txt files, use pyproject.toml exclusively
T-rav Oct 2, 2025
2e34506
refactor: Align pre-commit hooks with CI using single source of truth
T-rav Oct 2, 2025
4e9dddc
fix: Align flake8 rules between setup.cfg and pyproject.toml
T-rav Oct 2, 2025
e10ff77
feat: Enhance CI simulation with comprehensive validation steps
T-rav Oct 2, 2025
d9d9d65
refactor: Replace Dict[str, Any] with Pydantic models for type safety
T-rav Oct 2, 2025
4cc8982
docs: Clarify type safety architecture and model_dump() usage
T-rav Oct 2, 2025
f99e9b3
refactor: Extract models and clients into separate files (1 concept p…
T-rav Oct 2, 2025
5be9147
refactor: Extract services layer (Part 2 of modularization)
T-rav Oct 2, 2025
3d78632
refactor: Extract MCP tools layer (Part 3 of modularization)
T-rav Oct 2, 2025
13501cb
refactor: Extract utilities and eliminate code duplication (Priority 1)
T-rav Oct 2, 2025
68fe758
feat: Implement builder/factory pattern for tests (Priority 1)
T-rav Oct 2, 2025
186bc31
refactor: Replace raw MagicMock with typed test doubles (1 class per …
T-rav Oct 2, 2025
a3f4eed
chore: Remove unnecessary test documentation
T-rav Oct 2, 2025
94bd718
test: Achieve 84% coverage using builders and factories
T-rav Oct 3, 2025
fc3db41
fix: Auto-format code with Black
T-rav Oct 3, 2025
7432095
fix: Move old scattered test files to old_tests/
T-rav Oct 3, 2025
32edd52
fix: Update test-coverage to test refactored modules
T-rav Oct 3, 2025
f30b6d8
fix: Fix import ordering with isort
T-rav Oct 3, 2025
0dc3b02
fix: Use 'python -m' for all format/lint tools in Makefile
T-rav Oct 3, 2025
5067d92
fix: Remove unused imports and fix import order (flake8)
T-rav Oct 3, 2025
71d4c26
fix: Move imports to top of file (flake8 E402)
T-rav Oct 3, 2025
f9ab27a
fix: Install project dependencies for Docker MCP tests
T-rav Oct 3, 2025
542bbb9
fix: Add timeouts to Docker MCP Tests workflow
T-rav Oct 3, 2025
245192f
fix: Avoid testcontainers in Docker MCP Tests
T-rav Oct 3, 2025
5198967
fix: Run only unit tests with explicit path and timeout
T-rav Oct 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 4 additions & 12 deletions .github/workflows/docker_mcp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ on:
jobs:
run-tests:
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- name: Checkout code
uses: actions/checkout@v4
Expand All @@ -30,22 +31,13 @@ jobs:
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install pytest requests sseclient-py python-dotenv
if [ -f docker/requirements.txt ]; then pip install -r docker/requirements.txt; fi
pip install pytest pytest-cov pytest-mock pytest-asyncio pytest-timeout httpx
pip install -e .

- name: Run unit tests
run: |
cd docker
python -m pytest -v -m "not integration"
env:
WEBCAT_API_KEY: test_key_for_ci # pragma: allowlist secret
SERPER_API_KEY: ${{ secrets.SERPER_API_KEY }}

- name: Run integration tests (if server available)
run: |
cd docker
# Try to run integration tests, but don't fail the build if server isn't available
python -m pytest -v -m "integration" || echo "Integration tests skipped - no running server"
PYTHONPATH=. python -m pytest tests/unit -v --timeout=30
env:
WEBCAT_API_KEY: test_key_for_ci # pragma: allowlist secret
SERPER_API_KEY: ${{ secrets.SERPER_API_KEY }}
38 changes: 18 additions & 20 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,43 +23,41 @@ repos:
- id: fix-byte-order-marker
- id: mixed-line-ending
args: ['--fix=lf']
- id: requirements-txt-fixer

# Python code formatting
- repo: https://github.com/psf/black
rev: 23.12.1
# Python code formatting (using local installation from pyproject.toml)
- repo: local
hooks:
- id: black
language_version: python3.11
name: black
entry: black
language: system
types: [python]
args: ['--config', 'pyproject.toml']

# Import sorting
- repo: https://github.com/pycqa/isort
rev: 5.13.2
hooks:
- id: isort
name: isort
entry: isort
language: system
types: [python]
args: ['--settings-path', 'pyproject.toml']

# Remove unused imports and variables
- repo: https://github.com/PyCQA/autoflake
rev: v2.2.1
hooks:
- id: autoflake
name: autoflake
entry: autoflake
language: system
types: [python]
args:
- --in-place
- --remove-all-unused-imports
- --remove-unused-variables
- --expand-star-imports
- --ignore-init-module-imports

# Linting
- repo: https://github.com/pycqa/flake8
rev: 7.0.0
hooks:
- id: flake8
additional_dependencies:
- flake8-bugbear
- flake8-comprehensions
name: flake8
entry: flake8
language: system
types: [python]

# Type checking (disabled - too strict for current codebase)
# - repo: https://github.com/pre-commit/mirrors-mypy
Expand Down
Loading
Loading