53
Tests Passing
Unit tests covering all 20 tools
“Yeah, I’m gonna need you to go ahead and come in on Saturday…”
53
Tests Passing
Unit tests covering all 20 tools
99.3%
Torture Test Success
299/301 random Office documents
20%
Code Coverage
Focus on critical paths
1.39s
Test Suite Runtime
Fast feedback loop
We grabbed 301 random Office documents from a real filesystem and threw them at mcwaddams.
| Format | Tested | Passed | Failed | Success Rate |
|---|---|---|---|---|
.docx | 142 | 142 | 0 | 100% |
.xlsx | 89 | 89 | 0 | 100% |
.pptx | 34 | 34 | 0 | 100% |
.doc | 18 | 17 | 1* | 94.4% |
.xls | 12 | 12 | 0 | 100% |
.ppt | 4 | 4 | 0 | 100% |
.csv | 2 | 1 | 1* | 50% |
| Category | Count | Description |
|---|---|---|
| Universal Tools | 12 | extract_text, extract_images, detect_format, etc. |
| Word Tools | 18 | convert_to_markdown, extract_tables, structure analysis |
| Excel Tools | 9 | analyze_data, extract_formulas, chart generation |
| MCP Resources | 8 | Resource store, URI parsing, format conversion |
| Validation | 6 | File validation, error handling, edge cases |
.doc, .xls, .ppt from the basement# Clone the repogit clone https://github.com/ryanmalloy/mcwaddams.gitcd mcwaddams
# Install dev dependenciesuv sync --dev
# Run testsuv run pytest
# With coverageuv run pytest --cov=mcwaddamsmake test # Run tests + generate HTML dashboardmake test-pytest # Just pytest, no dashboardmake view-dashboard # Open the HTML reportWe built a visual test dashboard because staring at pytest output gets old.
Features:
Our coverage is 20% — and that’s intentional.
We focus on:
We don’t test:
Every push triggers:
ruff checkblack --checkmypypytest with coverage“I could set the building on fire…”
But we’d rather just run the tests.