Files
momentry_core/test_processors.sh
Warren b54c2def30 feat: add migrations, test scripts, and utility tools
- Add database migrations (006-028) for face recognition, identity, file_uuid
- Add test scripts for ASR, face, search, processing
- Add portal frontend (Tauri)
- Add config, benchmark, and monitoring utilities
- Add model checkpoints and pretrained model references
2026-04-30 15:11:53 +08:00

137 lines
4.1 KiB
Bash
Executable File

#!/bin/bash
# Processor Test Suite for Momentry Core
# Tests all 9 contract-compliant processors
set -e
echo "=== Momentry Core Processor Test Suite ==="
echo "Testing all 9 contract-compliant processors"
echo ""
# Test video file
TEST_VIDEO="/Users/accusys/test_video/BigBuckBunny_320x180.mp4"
API_KEY="muser_29dd336ea8d44b9badbc650d503b0348_1774620247_b098ff47"
API_URL="http://localhost:3002"
# Check if video exists
if [ ! -f "$TEST_VIDEO" ]; then
echo "❌ Test video not found: $TEST_VIDEO"
exit 1
fi
echo "✅ Test video found: $(basename "$TEST_VIDEO")"
echo ""
# Test 1: Check API health
echo "Test 1: API Health Check"
if curl -s "$API_URL/health" | grep -q "ok"; then
echo "✅ API is healthy"
else
echo "❌ API health check failed"
exit 1
fi
echo ""
# Test 2: Register video (creates job with all 9 processors)
echo "Test 2: Register Video"
REGISTER_RESPONSE=$(curl -s -X POST \
-H "X-API-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d "{\"file_path\": \"$TEST_VIDEO\"}" \
"$API_URL/api/v1/videos/register" || true)
if echo "$REGISTER_RESPONSE" | grep -q "already_exists"; then
echo "⚠️ Video already registered, checking existing job"
# Get video UUID from database
UUID=$(psql -U accusys -d momentry -h localhost -p 5432 -t -c "SELECT uuid FROM videos WHERE file_path = '$TEST_VIDEO' LIMIT 1;" | tr -d '[:space:]')
else
UUID=$(echo "$REGISTER_RESPONSE" | jq -r '.uuid' 2>/dev/null || echo "")
fi
if [ -n "$UUID" ]; then
echo "✅ Video UUID: $UUID"
else
echo "❌ Failed to get video UUID"
exit 1
fi
echo ""
# Test 3: Check job creation
echo "Test 3: Verify Job Creation"
JOB_INFO=$(psql -U accusys -d momentry -h localhost -p 5432 -t -c "SELECT id, status, processors, completed_processors FROM monitor_jobs WHERE uuid = '$UUID';")
if [ -n "$JOB_INFO" ]; then
echo "✅ Job created successfully"
echo " Job info: $JOB_INFO"
else
echo "❌ Job not found for UUID: $UUID"
exit 1
fi
echo ""
# Test 4: Check worker is processing
echo "Test 4: Worker Status"
WORKER_PID=$(ps aux | grep "momentry worker" | grep -v grep | head -1 | awk '{print $2}')
if [ -n "$WORKER_PID" ]; then
echo "✅ Worker running (PID: $WORKER_PID)"
# Check worker logs for activity
if tail -20 /Users/accusys/momentry/log/momentry_worker.log | grep -q "processing\|completed\|Processor"; then
echo "✅ Worker is active"
else
echo "⚠️ Worker not showing recent activity"
fi
else
echo "❌ Worker not running"
fi
echo ""
# Test 5: Monitor processor progress
echo "Test 5: Processor Progress Monitoring"
echo "Waiting 30 seconds for processor progress..."
sleep 30
JOB_PROGRESS=$(psql -U accusys -d momentry -h localhost -p 5432 -t -c "SELECT processors, completed_processors, failed_processors FROM monitor_jobs WHERE uuid = '$UUID';")
echo "Job progress: $JOB_PROGRESS"
echo ""
# Test 6: Check individual processor results
echo "Test 6: Individual Processor Results"
PROCESSORS=("asr" "cut" "yolo" "ocr" "face" "pose" "asrx" "caption" "story")
for processor in "${PROCESSORS[@]}"; do
COUNT=$(psql -U accusys -d momentry -h localhost -p 5432 -t -c "SELECT COUNT(*) FROM processor_results WHERE video_uuid = '$UUID' AND processor_type = '$processor';" | tr -d '[:space:]')
if [ "$COUNT" -gt "0" ]; then
echo "$processor: $COUNT results"
else
echo "$processor: No results yet"
fi
done
echo ""
# Test 7: System status
echo "Test 7: System Status Check"
SYSTEM_STATUS=$(curl -s -H "X-API-Key: $API_KEY" "$API_URL/api/v1/system/status")
if echo "$SYSTEM_STATUS" | grep -q "worker"; then
echo "✅ System status endpoint working"
else
echo "⚠️ System status endpoint may require authentication"
fi
echo ""
echo "=== Test Summary ==="
echo "All 9 contract processors configured:"
echo " - ASR (Automatic Speech Recognition)"
echo " - CUT (Scene Detection)"
echo " - YOLO (Object Detection)"
echo " - OCR (Text Recognition)"
echo " - Face (Face Detection)"
echo " - Pose (Pose Estimation)"
echo " - ASRX (Extended ASR)"
echo " - Caption (Video Captioning)"
echo " - Story (Narrative Generation)"
echo ""
echo "Note: Processor execution may take time depending on video length"
echo "Check /Users/accusys/momentry/log/momentry_worker.log for detailed progress"