v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40) - Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard) - Ollama GPU fonctionnel - Self-healing interactif - Dashboard confiance Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
98
test_resolution_finale_cross_machine_10jan2026.py
Normal file
98
test_resolution_finale_cross_machine_10jan2026.py
Normal file
@@ -0,0 +1,98 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test Final : Résolution Palette Vide Cross-Machine VWB
|
||||
Auteur : Dom, Alice, Kiro - 10 janvier 2026
|
||||
|
||||
Test rapide pour valider que la résolution complète fonctionne correctement.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
def test_resolution_complete():
|
||||
"""Test final de la résolution cross-machine"""
|
||||
|
||||
print("🚀 TEST FINAL - Résolution Palette Vide Cross-Machine VWB")
|
||||
print("=" * 60)
|
||||
print("Auteur : Dom, Alice, Kiro - 10 janvier 2026")
|
||||
print()
|
||||
|
||||
# Vérifier les fichiers clés
|
||||
files_to_check = [
|
||||
"visual_workflow_builder/frontend/src/services/catalogService.ts",
|
||||
"visual_workflow_builder/frontend/src/hooks/useCatalogActions.ts",
|
||||
"visual_workflow_builder/frontend/src/components/Palette/index.tsx",
|
||||
"visual_workflow_builder/frontend/src/data/staticCatalog.ts",
|
||||
"tests/integration/test_resolution_palette_cross_machine_finale_10jan2026.py",
|
||||
"scripts/test_resolution_palette_cross_machine_finale_10jan2026.py",
|
||||
"docs/RESOLUTION_FINALE_PALETTE_VIDE_CROSS_MACHINE_VWB_10JAN2026.md",
|
||||
"docs/RESUME_RESOLUTION_PALETTE_CROSS_MACHINE_COMPLETE_10JAN2026.md",
|
||||
]
|
||||
|
||||
print("📁 Vérification des fichiers...")
|
||||
missing_files = []
|
||||
|
||||
for file_path in files_to_check:
|
||||
if Path(file_path).exists():
|
||||
print(f" ✅ {file_path}")
|
||||
else:
|
||||
print(f" ❌ {file_path} - MANQUANT")
|
||||
missing_files.append(file_path)
|
||||
|
||||
if missing_files:
|
||||
print(f"\n❌ {len(missing_files)} fichier(s) manquant(s)")
|
||||
return False
|
||||
|
||||
print(f"\n✅ Tous les {len(files_to_check)} fichiers sont présents")
|
||||
|
||||
# Exécuter le script de validation
|
||||
print("\n🧪 Exécution de la validation complète...")
|
||||
try:
|
||||
result = subprocess.run([
|
||||
'python3', 'scripts/test_resolution_palette_cross_machine_finale_10jan2026.py'
|
||||
], capture_output=True, text=True, timeout=30)
|
||||
|
||||
if result.returncode == 0:
|
||||
print("✅ Validation complète réussie")
|
||||
return True
|
||||
else:
|
||||
print("❌ Validation complète échouée")
|
||||
print("STDERR:", result.stderr)
|
||||
return False
|
||||
|
||||
except subprocess.TimeoutExpired:
|
||||
print("⏰ Timeout de validation (> 30s)")
|
||||
return False
|
||||
except Exception as e:
|
||||
print(f"💥 Erreur lors de la validation: {e}")
|
||||
return False
|
||||
|
||||
def main():
|
||||
"""Point d'entrée principal"""
|
||||
|
||||
success = test_resolution_complete()
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
|
||||
if success:
|
||||
print("🎉 RÉSOLUTION PALETTE VIDE CROSS-MACHINE : COMPLÈTE ET VALIDÉE")
|
||||
print()
|
||||
print("✅ Fonctionnalités implémentées :")
|
||||
print(" 🌐 Détection automatique d'URL backend")
|
||||
print(" 📦 Catalogue statique de secours (5 actions)")
|
||||
print(" 🎨 Interface utilisateur avec indicateurs visuels")
|
||||
print(" 🔄 Actions de récupération (retry, reset, re-detect)")
|
||||
print(" 💾 Persistance configuration localStorage")
|
||||
print(" 🇫🇷 Messages et interface en français")
|
||||
print(" ⚡ Performance < 5 secondes garantie")
|
||||
print(" 🛡️ Robustesse cross-machine")
|
||||
print()
|
||||
print("🚀 Le système est prêt pour le déploiement !")
|
||||
sys.exit(0)
|
||||
else:
|
||||
print("❌ RÉSOLUTION INCOMPLÈTE - Vérifier les erreurs ci-dessus")
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user