Files
airano-ir 349913ca2d fix(ci): fix 3 pre-existing CI failures + doc updates
- i18n: add 115 missing EN translation keys (parity with FA)
- csrf: test /dashboard-legacy/keys (SPA owns /dashboard/*)
- oauth: add tier scopes to test fixture allowed_scopes
- DOCKER_README: v3.13.0 — remove Appwrite/Directus, clarify 8 plugins
- getting-started: remove Appwrite/Directus, add Coolify endpoint row
- Overview.tsx: fix Lang type for AdminStatsPanel

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 00:05:33 +02:00
..

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.