Initial commit
This commit is contained in:
142
test_summary_dashboard.py
Normal file
142
test_summary_dashboard.py
Normal file
@@ -0,0 +1,142 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test simple du tableau de bord résumé
|
||||
"""
|
||||
|
||||
import sys
|
||||
from datetime import datetime
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
|
||||
# Ajouter le chemin du module
|
||||
sys.path.insert(0, 'geniusia2')
|
||||
|
||||
from gui.dialogs.summary_dashboard import SummaryDashboard
|
||||
|
||||
|
||||
def test_dashboard_basic():
|
||||
"""Test basique du tableau de bord"""
|
||||
print("Test du tableau de bord résumé")
|
||||
print("=" * 50)
|
||||
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
# Créer le tableau de bord
|
||||
dashboard = SummaryDashboard()
|
||||
|
||||
print("✓ Tableau de bord créé")
|
||||
|
||||
# Ajouter des données de test
|
||||
test_tasks = [
|
||||
{
|
||||
"task_id": "ouvrir_facture_001",
|
||||
"task_name": "Ouvrir Facture",
|
||||
"mode": "auto",
|
||||
"confidence_score": 0.97,
|
||||
"observation_count": 45,
|
||||
"concordance_rate": 0.98,
|
||||
"correction_count": 1,
|
||||
"correction_rate": 0.022,
|
||||
"last_execution": datetime.now().isoformat()
|
||||
},
|
||||
{
|
||||
"task_id": "valider_commande_002",
|
||||
"task_name": "Valider Commande",
|
||||
"mode": "assist",
|
||||
"confidence_score": 0.89,
|
||||
"observation_count": 12,
|
||||
"concordance_rate": 0.92,
|
||||
"correction_count": 2,
|
||||
"correction_rate": 0.167,
|
||||
"last_execution": datetime.now().isoformat()
|
||||
},
|
||||
{
|
||||
"task_id": "saisie_client_003",
|
||||
"task_name": "Saisie Données Client",
|
||||
"mode": "shadow",
|
||||
"confidence_score": 0.65,
|
||||
"observation_count": 3,
|
||||
"concordance_rate": 0.67,
|
||||
"correction_count": 0,
|
||||
"correction_rate": 0.0,
|
||||
"last_execution": datetime.now().isoformat()
|
||||
},
|
||||
{
|
||||
"task_id": "export_rapport_004",
|
||||
"task_name": "Export Rapport Mensuel",
|
||||
"mode": "auto",
|
||||
"confidence_score": 0.96,
|
||||
"observation_count": 32,
|
||||
"concordance_rate": 0.97,
|
||||
"correction_count": 1,
|
||||
"correction_rate": 0.031,
|
||||
"last_execution": datetime.now().isoformat()
|
||||
},
|
||||
{
|
||||
"task_id": "envoi_email_005",
|
||||
"task_name": "Envoi Email Confirmation",
|
||||
"mode": "assist",
|
||||
"confidence_score": 0.88,
|
||||
"observation_count": 8,
|
||||
"concordance_rate": 0.88,
|
||||
"correction_count": 1,
|
||||
"correction_rate": 0.125,
|
||||
"last_execution": datetime.now().isoformat()
|
||||
}
|
||||
]
|
||||
|
||||
print(f"✓ Ajout de {len(test_tasks)} tâches de test")
|
||||
|
||||
for task in test_tasks:
|
||||
dashboard.update_metrics(task["task_id"], task)
|
||||
|
||||
print("✓ Métriques mises à jour")
|
||||
|
||||
# Vérifier que le tableau contient les bonnes données
|
||||
assert dashboard.tasks_table.rowCount() == len(test_tasks), \
|
||||
f"Nombre de lignes incorrect: {dashboard.tasks_table.rowCount()} != {len(test_tasks)}"
|
||||
|
||||
print(f"✓ Tableau contient {dashboard.tasks_table.rowCount()} lignes")
|
||||
|
||||
# Vérifier les statistiques globales
|
||||
print("\nStatistiques globales:")
|
||||
print(f" - {dashboard.total_tasks_label.text()}")
|
||||
print(f" - {dashboard.shadow_tasks_label.text()}")
|
||||
print(f" - {dashboard.assist_tasks_label.text()}")
|
||||
print(f" - {dashboard.auto_tasks_label.text()}")
|
||||
|
||||
# Test du filtrage
|
||||
print("\nTest du filtrage par mode...")
|
||||
dashboard.mode_filter.setCurrentText("Autopilot")
|
||||
filtered_count = dashboard.tasks_table.rowCount()
|
||||
print(f"✓ Filtre Autopilot: {filtered_count} tâches")
|
||||
|
||||
dashboard.mode_filter.setCurrentText("Assisté")
|
||||
filtered_count = dashboard.tasks_table.rowCount()
|
||||
print(f"✓ Filtre Assisté: {filtered_count} tâches")
|
||||
|
||||
dashboard.mode_filter.setCurrentText("Shadow")
|
||||
filtered_count = dashboard.tasks_table.rowCount()
|
||||
print(f"✓ Filtre Shadow: {filtered_count} tâches")
|
||||
|
||||
dashboard.mode_filter.setCurrentText("Tous")
|
||||
|
||||
# Test de la recherche
|
||||
print("\nTest de la recherche...")
|
||||
dashboard.search_input.setText("facture")
|
||||
search_count = dashboard.tasks_table.rowCount()
|
||||
print(f"✓ Recherche 'facture': {search_count} tâche(s)")
|
||||
|
||||
dashboard.search_input.clear()
|
||||
|
||||
print("\n" + "=" * 50)
|
||||
print("✓ Tous les tests basiques réussis!")
|
||||
print("\nAffichage du tableau de bord...")
|
||||
print("(Fermez la fenêtre pour terminer le test)")
|
||||
|
||||
dashboard.show()
|
||||
|
||||
return app.exec_()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(test_dashboard_basic())
|
||||
Reference in New Issue
Block a user