Files
mcphub/tests
airano c73e39f6e4 fix(ci): fix black/ruff failures, add CoC and PR template
- Fix Python formatting (sync no longer strips blank lines from .py files)
- Remove test_community_build.py (tests private sync module)
- Fix ruff warnings in test files
- Add CODE_OF_CONDUCT.md
- Add .github/PULL_REQUEST_TEMPLATE.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 18:19:39 +03:30
..

Testing Guide

Integration Tests

Quick Start

# In Docker container:
docker exec -it mcphub python tests/run_integration_tests.py

# Or local:
python tests/run_integration_tests.py

What Gets Tested

  1. Module Imports - All modules load correctly
  2. BasePlugin Architecture - Plugin system compatibility
  3. WordPress Plugin - Initialization and handlers
  4. Tool Specifications - Format and completeness
  5. Handlers Structure - All 14 handlers present
  6. Pydantic Schemas - Validation working
  7. ToolGenerator Integration - Dynamic tool generation ready

Expected Output

Running Integration Tests for WordPress MCP Server
============================================================

Running: Imports... PASSED
Running: Base Plugin... PASSED
Running: WordPress Plugin Init... PASSED
Running: Tool Specifications... PASSED
Running: Handlers Structure... PASSED
Running: Pydantic Schemas... PASSED
Running: ToolGenerator Integration... PASSED

============================================================
Test Summary:
   Total: 7
   Passed: 7
   Failed: 0
   Skipped: 0

Exit Codes

  • 0 - All tests passed
  • 1 - Some tests failed

JSON Output

The script also outputs results as JSON for programmatic parsing:

{
  "timestamp": "2025-11-16T10:30:00",
  "tests": [
    {
      "name": "imports",
      "status": "passed",
      "message": "All modules imported successfully",
      "details": {}
    }
  ],
  "summary": {
    "total": 7,
    "passed": 7,
    "failed": 0,
    "skipped": 0
  }
}

Manual Testing with Real Sites

To test with real sites, use MCP Inspector or Claude Desktop:

# Test health
wordpress_get_site_health(site="mysite")

# Test posts
wordpress_list_posts(site="mysite", per_page=5)

# Test products
wordpress_list_products(site="mysite", per_page=5)

# Test WP-CLI (requires container access)
wordpress_wp_cache_type(site="mysite")

Troubleshooting

Import Errors

Error: ModuleNotFoundError: No module named 'plugins'

Fix: Run from project root:

cd /app  # In Docker
python tests/run_integration_tests.py

Handler Errors

Error: Can't instantiate abstract class WordPressPlugin

Fix: This means BasePlugin still has abstract get_tools(). This should be fixed in the latest version.