- Implemented `test_thumbnail_generation.py` to validate the complete flow of document thumbnail generation in EspoCRM, including document creation, file upload, webhook triggering, and preview verification. - Created `test_xai_collections_api.py` to test critical operations of the xAI Collections API, covering file uploads, collection CRUD operations, document management, and response validation. - Both scripts include detailed logging for success and error states, ensuring robust testing and easier debugging.
Test Scripts
This directory contains test scripts for the Motia III xAI Collections integration.
Test Files
test_xai_collections_api.py
Tests xAI Collections API authentication and basic operations.
Usage:
cd /opt/motia-iii/bitbylaw
python tests/test_xai_collections_api.py
Required Environment Variables:
XAI_MANAGEMENT_API_KEY- xAI Management API key for collection operationsXAI_API_KEY- xAI Regular API key for file operations
Tests:
- ✅ Management API authentication
- ✅ Regular API authentication
- ✅ Collection listing
- ✅ Collection creation
- ✅ File upload
- ✅ Collection deletion
- ✅ Error handling
test_preview_upload.py
Tests preview/thumbnail upload to EspoCRM CDokumente entity.
Usage:
cd /opt/motia-iii/bitbylaw
python tests/test_preview_upload.py
Required Environment Variables:
ESPOCRM_URL- EspoCRM instance URL (default: https://crm.bitbylaw.com)ESPOCRM_API_KEY- EspoCRM API key
Tests:
- ✅ Preview image generation (WebP format, 600x800px)
- ✅ Base64 Data URI encoding
- ✅ Attachment upload via JSON POST
- ✅ Entity update with previewId/previewName
Status: ✅ Successfully tested - Attachment ID 69a71194c7c6baebf created
test_thumbnail_generation.py
Tests thumbnail generation for various document types.
Usage:
cd /opt/motia-iii/bitbylaw
python tests/test_thumbnail_generation.py
Supported Formats:
- PDF → WebP (first page)
- DOCX/DOC → PDF → WebP
- Images (JPEG, PNG, etc.) → WebP resize
Dependencies:
python3-pil- PIL/Pillow for image processingpoppler-utils- PDF renderinglibreoffice- DOCX to PDF conversionpdf2image- PDF to image conversion
Running Tests
All Tests
cd /opt/motia-iii/bitbylaw
python -m pytest tests/ -v
Individual Tests
cd /opt/motia-iii/bitbylaw
python tests/test_xai_collections_api.py
python tests/test_preview_upload.py
python tests/test_thumbnail_generation.py
Environment Setup
Create .env file in /opt/motia-iii/bitbylaw/:
# xAI Collections API
XAI_MANAGEMENT_API_KEY=xai-token-xxx...
XAI_API_KEY=xai-xxx...
# EspoCRM API
ESPOCRM_URL=https://crm.bitbylaw.com
ESPOCRM_API_KEY=xxx...
# Redis (for locking)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB_ADVOWARE_CACHE=1
Test Results
Last test run: Successfully validated preview upload functionality
- Preview upload works with base64 Data URI format
- Attachment created with ID:
69a71194c7c6baebf - CDokumente entity updated with previewId/previewName
- WebP format at 600x800px confirmed working