llm_lab/tests/test_agent.py
2025-03-26 15:40:31 +01:00

65 lines
2.5 KiB
Python

import unittest
import os
import sys
import json
from datetime import datetime
from pathlib import Path
# Ajouter le répertoire parent au sys.path pour importer les modules
sys.path.append(str(Path(__file__).parent.parent))
from agents.base_agent import Agent
class TestAgent(unittest.TestCase):
"""Tests pour la classe Agent de base"""
def setUp(self):
"""Initialisation pour chaque test"""
self.agent = Agent(nom="TestAgent")
def test_initialisation(self):
"""Test de l'initialisation correcte de l'agent"""
self.assertEqual(self.agent.nom, "TestAgent")
self.assertEqual(len(self.agent.historique), 0)
def test_ajouter_historique(self):
"""Test de l'ajout d'entrées dans l'historique"""
self.agent.ajouter_historique("test_action", "données d'entrée", "données de sortie")
self.assertEqual(len(self.agent.historique), 1)
entry = self.agent.historique[0]
self.assertEqual(entry["action"], "test_action")
self.assertEqual(entry["input"], "données d'entrée")
self.assertEqual(entry["output"], "données de sortie")
self.assertTrue("timestamp" in entry)
def test_obtenir_historique(self):
"""Test de la récupération de l'historique"""
# Ajouter plusieurs entrées
self.agent.ajouter_historique("action1", "entrée1", "sortie1")
self.agent.ajouter_historique("action2", "entrée2", "sortie2")
historique = self.agent.obtenir_historique()
self.assertEqual(len(historique), 2)
self.assertEqual(historique[0]["action"], "action1")
self.assertEqual(historique[1]["action"], "action2")
def test_executer_not_implemented(self):
"""Test que la méthode executer lève une NotImplementedError"""
with self.assertRaises(NotImplementedError):
self.agent.executer()
def test_limite_taille_historique(self):
"""Test de la limite de taille dans l'historique"""
# Créer une entrée avec une chaîne très longue
longue_chaine = "x" * 1000
self.agent.ajouter_historique("test_limite", longue_chaine, longue_chaine)
entry = self.agent.historique[0]
self.assertEqual(len(entry["input"]), 500) # Limite à 500 caractères
self.assertEqual(len(entry["output"]), 500) # Limite à 500 caractères
if __name__ == "__main__":
unittest.main()