#!/bin/bash echo "╔════════════════════════════════════════════════════════════════════╗" echo "║ VALIDATION COMPLÈTE DU CORRECTIF ║" echo "╚════════════════════════════════════════════════════════════════════╝" echo "" ERRORS=0 # Test 1: Syntaxe Python echo "🔍 Test 1: Validation syntaxe Python..." if python3 -m py_compile /var/www/lucas/analyze.py 2>/dev/null; then echo " ✅ Syntaxe valide" else echo " ❌ Erreur de syntaxe" ERRORS=$((ERRORS+1)) fi echo "" # Test 2: Import du module echo "🔍 Test 2: Import du module analyze..." if python3 -c "import sys; sys.path.insert(0, '/var/www/lucas'); import analyze" 2>/dev/null; then echo " ✅ Import réussi" else echo " ❌ Échec d'import" ERRORS=$((ERRORS+1)) fi echo "" # Test 3: Tests de robustesse JSON echo "🔍 Test 3: Tests de robustesse JSON..." if python3 /var/www/lucas/test_json_robustness.py 2>&1 | grep -q "8 réussis, 0 échoués"; then echo " ✅ 8/8 tests passés" else echo " ❌ Certains tests ont échoué" ERRORS=$((ERRORS+1)) fi echo "" # Test 4: Vérification des fichiers créés echo "🔍 Test 4: Vérification des fichiers..." FILES=( "/var/www/lucas/analyze.py" "/var/www/lucas/check_gemini_health.py" "/var/www/lucas/test_json_robustness.py" "/var/www/lucas/test_analyze_full.py" "/var/www/lucas/GEMINI_FIX_README.md" "/var/www/lucas/CORRECTIF_TECHNIQUE.md" "/var/www/lucas/CHANGELOG_v2.0.md" ) for FILE in "${FILES[@]}"; do if [ -f "$FILE" ]; then echo " ✅ $(basename $FILE)" else echo " ❌ $(basename $FILE) manquant" ERRORS=$((ERRORS+1)) fi done echo "" # Test 5: Vérification des permissions echo "🔍 Test 5: Vérification des permissions..." if [ -x "/var/www/lucas/analyze.py" ]; then echo " ✅ analyze.py est exécutable" else echo " ⚠️ analyze.py n'est pas exécutable" fi echo "" # Test 6: Taille du fichier principal echo "🔍 Test 6: Vérification taille analyze.py..." SIZE=$(stat -f%z /var/www/lucas/analyze.py 2>/dev/null || stat -c%s /var/www/lucas/analyze.py 2>/dev/null) if [ "$SIZE" -gt "10000" ]; then echo " ✅ Taille: $SIZE octets (contenu significatif)" else echo " ❌ Taille: $SIZE octets (trop petit)" ERRORS=$((ERRORS+1)) fi echo "" # Résumé echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" if [ $ERRORS -eq 0 ]; then echo "✅ VALIDATION RÉUSSIE - Tous les tests sont passés" echo "" echo "Le correctif est prêt pour la production." echo "Vous pouvez monitorer avec: python3 /var/www/lucas/check_gemini_health.py" exit 0 else echo "❌ VALIDATION ÉCHOUÉE - $ERRORS erreur(s) détectée(s)" echo "" echo "Veuillez corriger les erreurs avant de déployer." exit 1 fi