- 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>
154 lines
4.4 KiB
Python
154 lines
4.4 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test de debug du backend VWB pour identifier le problème de capture.
|
|
|
|
Auteur : Dom, Alice, Kiro - 09 janvier 2026
|
|
|
|
Ce test examine les logs du serveur pour identifier pourquoi la capture échoue.
|
|
"""
|
|
|
|
import sys
|
|
import os
|
|
import time
|
|
import requests
|
|
import subprocess
|
|
from pathlib import Path
|
|
|
|
# Ajouter le répertoire racine au path
|
|
ROOT_DIR = Path(__file__).parent.parent.parent
|
|
sys.path.insert(0, str(ROOT_DIR))
|
|
|
|
def start_backend_server_debug():
|
|
"""Démarre le serveur backend VWB en mode debug."""
|
|
print("🚀 Démarrage du serveur backend VWB en mode debug...")
|
|
|
|
# Utiliser l'environnement virtuel
|
|
venv_python = ROOT_DIR / "venv_v3" / "bin" / "python3"
|
|
backend_script = ROOT_DIR / "visual_workflow_builder" / "backend" / "app_lightweight.py"
|
|
|
|
# Variables d'environnement pour le serveur
|
|
env = os.environ.copy()
|
|
env['PYTHONPATH'] = str(ROOT_DIR)
|
|
env['PORT'] = '5002'
|
|
|
|
print(f"🐍 Utilisation de: {venv_python}")
|
|
print(f"📁 Script: {backend_script}")
|
|
|
|
# Démarrer le serveur en mode interactif pour voir les logs
|
|
process = subprocess.Popen(
|
|
[str(venv_python), str(backend_script)],
|
|
stdout=subprocess.PIPE,
|
|
stderr=subprocess.STDOUT, # Rediriger stderr vers stdout
|
|
cwd=str(ROOT_DIR),
|
|
env=env,
|
|
text=True,
|
|
bufsize=1,
|
|
universal_newlines=True
|
|
)
|
|
|
|
# Attendre que le serveur démarre et afficher les logs
|
|
print("⏳ Attente du démarrage du serveur...")
|
|
time.sleep(3)
|
|
|
|
# Lire les logs de démarrage
|
|
print("\n📋 Logs de démarrage du serveur:")
|
|
print("-" * 40)
|
|
|
|
# Lire quelques lignes de sortie
|
|
for i in range(20): # Lire les 20 premières lignes
|
|
try:
|
|
line = process.stdout.readline()
|
|
if line:
|
|
print(f"LOG: {line.strip()}")
|
|
else:
|
|
break
|
|
except:
|
|
break
|
|
|
|
print("-" * 40)
|
|
|
|
return process
|
|
|
|
def test_capture_with_logs(server_process):
|
|
"""Teste la capture en surveillant les logs."""
|
|
print("\n📷 Test de capture avec surveillance des logs...")
|
|
|
|
# Faire une requête de capture
|
|
try:
|
|
print("🔄 Envoi de la requête de capture...")
|
|
response = requests.post(
|
|
"http://localhost:5002/api/screen-capture",
|
|
json={"format": "png", "quality": 90},
|
|
timeout=15
|
|
)
|
|
|
|
print(f"📊 Statut de réponse: {response.status_code}")
|
|
|
|
# Lire les logs pendant la requête
|
|
print("\n📋 Logs pendant la capture:")
|
|
print("-" * 40)
|
|
|
|
# Lire quelques lignes supplémentaires
|
|
for i in range(10):
|
|
try:
|
|
line = server_process.stdout.readline()
|
|
if line:
|
|
print(f"LOG: {line.strip()}")
|
|
else:
|
|
break
|
|
except:
|
|
break
|
|
|
|
print("-" * 40)
|
|
|
|
if response.status_code == 200:
|
|
data = response.json()
|
|
if data.get('success'):
|
|
print(f"✅ Capture réussie - {data['width']}x{data['height']}")
|
|
return True
|
|
else:
|
|
print(f"❌ Erreur capture: {data.get('error', 'inconnue')}")
|
|
return False
|
|
else:
|
|
print(f"❌ Erreur HTTP: {response.status_code}")
|
|
print(f"Réponse: {response.text}")
|
|
return False
|
|
|
|
except Exception as e:
|
|
print(f"❌ Erreur lors de la capture: {e}")
|
|
return False
|
|
|
|
def main():
|
|
"""Fonction principale de test."""
|
|
print("=" * 60)
|
|
print(" TEST DEBUG BACKEND VWB")
|
|
print("=" * 60)
|
|
print("Auteur : Dom, Alice, Kiro - 09 janvier 2026")
|
|
print("")
|
|
|
|
# Démarrer le serveur backend
|
|
server_process = start_backend_server_debug()
|
|
|
|
if not server_process:
|
|
print("❌ Impossible de démarrer le serveur backend")
|
|
return False
|
|
|
|
try:
|
|
# Attendre un peu plus pour le démarrage complet
|
|
time.sleep(5)
|
|
|
|
# Tester la capture avec logs
|
|
success = test_capture_with_logs(server_process)
|
|
|
|
return success
|
|
|
|
finally:
|
|
# Arrêter le serveur
|
|
if server_process:
|
|
print("\n🛑 Arrêt du serveur backend...")
|
|
server_process.terminate()
|
|
server_process.wait()
|
|
|
|
if __name__ == '__main__':
|
|
success = main()
|
|
sys.exit(0 if success else 1) |