178 lines
6.4 KiB
Python
178 lines
6.4 KiB
Python
"""
|
|
Test de l'ImprovedGUI - Interface améliorée avec LogsPanel
|
|
"""
|
|
|
|
import sys
|
|
sys.path.insert(0, 'geniusia2')
|
|
|
|
from PyQt5.QtWidgets import QApplication
|
|
from PyQt5.QtCore import QTimer
|
|
from gui import ImprovedGUI
|
|
|
|
def main():
|
|
"""Test de l'ImprovedGUI avec simulation d'événements"""
|
|
app = QApplication(sys.argv)
|
|
|
|
print("=" * 60)
|
|
print("Test de l'ImprovedGUI")
|
|
print("=" * 60)
|
|
|
|
# Créer la GUI
|
|
gui = ImprovedGUI()
|
|
gui.show()
|
|
|
|
print("\n✓ GUI créée et affichée")
|
|
print(f" Taille: {gui.width()}x{gui.height()}px")
|
|
print(f" Mode initial: {gui.state.mode}")
|
|
print(f" Statut: {'En cours' if gui.state.is_running else 'Arrêté'}")
|
|
|
|
# Fonction pour simuler des événements
|
|
def simulate_workflow():
|
|
print("\n📝 Simulation d'un workflow complet...")
|
|
|
|
# 1. Démarrage du système
|
|
print(" 1. Démarrage du système")
|
|
gui.signals.emit_status_change(True)
|
|
gui.signals.emit_log("👀", "Système démarré en mode Observation", "info")
|
|
|
|
# 2. Observation d'actions
|
|
QTimer.singleShot(1000, lambda: [
|
|
print(" 2. Observation d'actions"),
|
|
gui.signals.emit_log("👀", "J'observe vos actions dans Calculator", "info"),
|
|
gui.signals.emit_stats_update({
|
|
'actions_count': 3,
|
|
'patterns_count': 0,
|
|
'workflows_count': 0
|
|
})
|
|
])
|
|
|
|
# 3. Détection de pattern
|
|
QTimer.singleShot(2000, lambda: [
|
|
print(" 3. Détection de pattern"),
|
|
gui.signals.emit_log("🎯", "Tiens ! Vous avez fait 3 fois la même chose", "success"),
|
|
gui.signals.emit_stats_update({
|
|
'actions_count': 9,
|
|
'patterns_count': 1,
|
|
'workflows_count': 0
|
|
})
|
|
])
|
|
|
|
# 4. Apprentissage de workflow
|
|
QTimer.singleShot(3000, lambda: [
|
|
print(" 4. Apprentissage de workflow"),
|
|
gui.signals.emit_log("📚", "J'apprends: Calculer 9/9 (5 observations)", "info"),
|
|
gui.signals.emit_stats_update({
|
|
'actions_count': 12,
|
|
'patterns_count': 2,
|
|
'workflows_count': 1
|
|
})
|
|
])
|
|
|
|
# 5. Changement de mode
|
|
QTimer.singleShot(4000, lambda: [
|
|
print(" 5. Changement de mode vers Suggestions"),
|
|
gui.signals.emit_mode_change("assist"),
|
|
gui.signals.emit_log("✅", "Mode Suggestions activé", "success")
|
|
])
|
|
|
|
# 6. Collecte d'exemples pour fine-tuning
|
|
QTimer.singleShot(5000, lambda: [
|
|
print(" 6. Collecte d'exemples pour fine-tuning"),
|
|
gui.signals.emit_log("🧠", "Collecte d'exemples: 8/10", "info"),
|
|
gui.signals.emit_stats_update({
|
|
'actions_count': 15,
|
|
'patterns_count': 2,
|
|
'workflows_count': 1,
|
|
'finetuning_status': 'collecting',
|
|
'finetuning_progress': 8
|
|
})
|
|
])
|
|
|
|
# 7. Fine-tuning en cours
|
|
QTimer.singleShot(6000, lambda: [
|
|
print(" 7. Fine-tuning en cours"),
|
|
gui.signals.emit_log("🧠", "Amélioration du modèle (10 exemples)...", "info"),
|
|
gui.signals.emit_stats_update({
|
|
'actions_count': 17,
|
|
'patterns_count': 2,
|
|
'workflows_count': 1,
|
|
'finetuning_status': 'training',
|
|
'finetuning_progress': None
|
|
})
|
|
])
|
|
|
|
# 8. Fine-tuning terminé
|
|
QTimer.singleShot(7000, lambda: [
|
|
print(" 8. Fine-tuning terminé"),
|
|
gui.signals.emit_log("✅", "Modèle amélioré (en 2.3s)", "success"),
|
|
gui.signals.emit_stats_update({
|
|
'actions_count': 17,
|
|
'patterns_count': 2,
|
|
'workflows_count': 1,
|
|
'finetuning_status': 'completed',
|
|
'finetuning_progress': None
|
|
})
|
|
])
|
|
|
|
# 9. Suggestion prête
|
|
QTimer.singleShot(8000, lambda: [
|
|
print(" 9. Suggestion prête"),
|
|
gui.signals.emit_log("💡", "Prêt à suggérer: Calculer 9/9", "info")
|
|
])
|
|
|
|
# 10. Test d'erreur
|
|
QTimer.singleShot(9000, lambda: [
|
|
print(" 10. Test d'erreur"),
|
|
gui.signals.emit_log("⚠️", "Application non autorisée - Terminal", "warning")
|
|
])
|
|
|
|
# 11. Test d'erreur critique
|
|
QTimer.singleShot(10000, lambda: [
|
|
print(" 11. Test d'erreur critique"),
|
|
gui.signals.emit_log("❌", "Impossible de se connecter - Calculator", "error")
|
|
])
|
|
|
|
# 12. Changement vers mode Copilote
|
|
QTimer.singleShot(11000, lambda: [
|
|
print(" 12. Changement vers mode Copilote"),
|
|
gui.signals.emit_mode_change("copilot"),
|
|
gui.signals.emit_log("✅", "Mode Copilote activé", "success")
|
|
])
|
|
|
|
# 13. Changement vers mode Autonome
|
|
QTimer.singleShot(12000, lambda: [
|
|
print(" 13. Changement vers mode Autonome"),
|
|
gui.signals.emit_mode_change("auto"),
|
|
gui.signals.emit_log("✅", "Mode Autonome activé", "success")
|
|
])
|
|
|
|
# 14. Test de la limite de 30 logs
|
|
QTimer.singleShot(13000, lambda: [
|
|
print(" 14. Test de la limite de 30 logs (ajout de 25 logs)"),
|
|
*[gui.signals.emit_log("📝", f"Message de test #{i+1}", "info") for i in range(25)]
|
|
])
|
|
|
|
# 15. Vérification finale
|
|
QTimer.singleShot(14000, lambda: [
|
|
print("\n✅ Simulation terminée!"),
|
|
print(f"\nStatistiques finales:"),
|
|
print(f" Actions: {gui.state.actions_count}"),
|
|
print(f" Patterns: {gui.state.patterns_count}"),
|
|
print(f" Workflows: {gui.state.workflows_count}"),
|
|
print(f" Logs affichés: {gui.logs_panel.get_log_count()}"),
|
|
print(f"\n💡 Testez maintenant:"),
|
|
print(f" - Scroll dans les logs"),
|
|
print(f" - Boutons Pause/Arrêter"),
|
|
print(f" - Icône system tray (clic droit)"),
|
|
print(f" - Minimisation vers le tray"),
|
|
print(f"\nFermez la fenêtre pour quitter.")
|
|
])
|
|
|
|
# Démarrer la simulation après 500ms
|
|
QTimer.singleShot(500, simulate_workflow)
|
|
|
|
sys.exit(app.exec_())
|
|
|
|
if __name__ == "__main__":
|
|
main()
|