mcp-pdf-tools/test_integration.py
Ryan Malloy 8d01c44d4f 🚀 Rename to mcp-pdf and prepare for PyPI publication
**Package Rebranding:**
- Renamed package from mcp-pdf-tools to mcp-pdf (cleaner name)
- Updated version to 1.0.0 (production ready with security hardening)
- Updated all import paths and references throughout codebase

**PyPI Preparation:**
- Enhanced package description and metadata
- Added proper project URLs and homepage
- Updated CLI command from mcp-pdf-tools to mcp-pdf
- Built distribution packages (wheel + source)

**Testing & Validation:**
- All 20 security tests pass with new package structure
- Local installation and import tests successful
- CLI command working correctly
- Package ready for PyPI publication

The secure, production-ready PDF processing platform is now ready
for public distribution and installation via pip.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 15:42:59 -06:00

86 lines
2.6 KiB
Python

#!/usr/bin/env python3
"""
Integration test to verify basic functionality after security hardening
"""
import tempfile
from pathlib import Path
from reportlab.pdfgen import canvas
from src.mcp_pdf.server import create_server, validate_pdf_path, validate_page_count
import fitz
def create_test_pdf():
"""Create a simple test PDF file"""
with tempfile.NamedTemporaryFile(suffix='.pdf', delete=False) as tmp_file:
c = canvas.Canvas(tmp_file.name)
c.drawString(100, 750, "This is a test PDF document.")
c.drawString(100, 700, "It has some sample text for testing.")
c.save()
return Path(tmp_file.name)
def test_basic_functionality():
"""Test basic functionality after security hardening"""
print("🧪 Testing MCP PDF Tools Integration")
print("=" * 50)
# 1. Test server creation
print("1. Testing server creation...")
try:
server = create_server()
print(" ✅ Server created successfully")
except Exception as e:
print(f" ❌ Server creation failed: {e}")
return False
# 2. Test PDF file validation
print("2. Testing PDF validation...")
test_pdf = create_test_pdf()
try:
validated_path = validate_pdf_path(str(test_pdf))
print(f" ✅ PDF validation successful: {validated_path}")
except Exception as e:
print(f" ❌ PDF validation failed: {e}")
test_pdf.unlink()
return False
# 3. Test page count validation
print("3. Testing page count validation...")
try:
doc = fitz.open(str(test_pdf))
validate_page_count(doc, "integration test")
doc.close()
print(" ✅ Page count validation successful")
except Exception as e:
print(f" ❌ Page count validation failed: {e}")
test_pdf.unlink()
return False
# 4. Test file size limits
print("4. Testing file size checking...")
file_size = test_pdf.stat().st_size
print(f" 📏 Test PDF size: {file_size} bytes")
print(f" 📏 Max allowed: 100MB ({100 * 1024 * 1024} bytes)")
if file_size < 100 * 1024 * 1024:
print(" ✅ File size within limits")
else:
print(" ❌ File size exceeds limits")
test_pdf.unlink()
return False
# 5. Clean up
test_pdf.unlink()
print(" 🧹 Test file cleaned up")
print("\n🎉 All integration tests passed!")
print("🔒 Security features are working correctly")
print("⚡ Core functionality is intact")
return True
if __name__ == "__main__":
success = test_basic_functionality()
exit(0 if success else 1)