114 lines
4.5 KiB
Python
114 lines
4.5 KiB
Python
"""
|
||
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)
|