Initial commit

This commit is contained in:
Dom
2026-03-05 00:20:25 +01:00
commit dcd4de9945
1954 changed files with 669380 additions and 0 deletions

113
test_logs_panel_simple.py Normal file
View File

@@ -0,0 +1,113 @@
"""
Test simple du LogsPanel sans interface graphique
"""
import sys
sys.path.insert(0, 'geniusia2')
from PyQt5.QtWidgets import QApplication
from gui.logs_panel import LogsPanel, LogMessage
from datetime import datetime
# Créer une application Qt (nécessaire pour les widgets Qt)
app = QApplication(sys.argv)
def test_logs_panel():
"""Test des fonctionnalités du LogsPanel"""
# Test 1: Création du panneau
print('Test 1: Création du panneau')
panel = LogsPanel()
print(f'✓ Panneau créé, max_logs={panel.max_logs}')
assert panel.max_logs == 30, f'Expected max_logs=30, got {panel.max_logs}'
# Test 2: Ajout de logs
print('\nTest 2: Ajout de logs')
panel.add_log('Test message 1', '👀', 'info')
panel.add_log('Test message 2', '🎯', 'success')
panel.add_log('Test message 3', '⚠️', 'warning')
print(f'✓ 3 logs ajoutés, count={panel.get_log_count()}')
assert panel.get_log_count() == 3, f'Expected 3, got {panel.get_log_count()}'
# Test 3: Vérifier la limite de 30
print('\nTest 3: Test de la limite de 30 messages')
for i in range(30):
panel.add_log(f'Message {i+4}', '📝', 'info')
print(f'✓ Ajouté 30 logs supplémentaires, count={panel.get_log_count()}')
assert panel.get_log_count() == 30, f'Expected 30, got {panel.get_log_count()}'
# Test 4: Vérifier que les anciens sont supprimés
print('\nTest 4: Vérifier suppression des anciens')
panel.add_log('Nouveau message', '', 'success')
print(f'✓ Ajouté 1 log de plus, count={panel.get_log_count()}')
assert panel.get_log_count() == 30, f'Expected 30, got {panel.get_log_count()}'
# Test 5: get_last_log
print('\nTest 5: get_last_log')
last = panel.get_last_log()
print(f'✓ Dernier log: {last.message}')
assert last.message == 'Nouveau message', f'Expected "Nouveau message", got "{last.message}"'
# Test 6: get_logs
print('\nTest 6: get_logs')
logs = panel.get_logs()
print(f'✓ get_logs retourne {len(logs)} logs')
assert len(logs) == 30, f'Expected 30, got {len(logs)}'
# Test 7: Vérifier que le premier log a été supprimé
print('\nTest 7: Vérifier que les premiers logs ont été supprimés')
first_log = logs[0]
print(f'✓ Premier log restant: {first_log.message}')
# Les 3 premiers logs + 1 ont été supprimés, donc le premier devrait être "Message 4"
assert 'Message' in first_log.message, f'Expected message with "Message", got "{first_log.message}"'
# Test 8: clear
print('\nTest 8: clear')
panel.clear()
print(f'✓ Logs effacés, count={panel.get_log_count()}')
assert panel.get_log_count() == 0, f'Expected 0, got {panel.get_log_count()}'
# Test 9: get_last_log après clear
print('\nTest 9: get_last_log après clear')
last = panel.get_last_log()
print(f'✓ get_last_log après clear: {last}')
assert last is None, f'Expected None, got {last}'
# Test 10: Ajouter des logs après clear
print('\nTest 10: Ajouter des logs après clear')
panel.add_log('Premier log après clear', '🔄', 'info')
print(f'✓ Log ajouté après clear, count={panel.get_log_count()}')
assert panel.get_log_count() == 1, f'Expected 1, got {panel.get_log_count()}'
# Test 11: Vérifier les différents niveaux
print('\nTest 11: Vérifier les différents niveaux')
panel.clear()
panel.add_log('Info message', '', 'info')
panel.add_log('Success message', '', 'success')
panel.add_log('Warning message', '⚠️', 'warning')
panel.add_log('Error message', '', 'error')
logs = panel.get_logs()
assert len(logs) == 4, f'Expected 4, got {len(logs)}'
assert logs[0].level == 'info', f'Expected info, got {logs[0].level}'
assert logs[1].level == 'success', f'Expected success, got {logs[1].level}'
assert logs[2].level == 'warning', f'Expected warning, got {logs[2].level}'
assert logs[3].level == 'error', f'Expected error, got {logs[3].level}'
print(f'✓ Tous les niveaux fonctionnent correctement')
print('\n✅ Tous les tests passent!')
return True
if __name__ == "__main__":
try:
test_logs_panel()
print("\n" + "="*50)
print("SUCCESS: LogsPanel fonctionne correctement!")
print("="*50)
except AssertionError as e:
print(f"\n❌ ERREUR: {e}")
sys.exit(1)
except Exception as e:
print(f"\n❌ ERREUR INATTENDUE: {e}")
import traceback
traceback.print_exc()
sys.exit(1)