refactor:

- changed method get_agent_tools for only get_tools on agent interface
- changed OllamaModelManager to correc semantic OllamaService

test:
- added test for service initialization
- added tests to list tools and create tools into  PDF agent
This commit is contained in:
2025-03-23 21:52:11 -03:00
parent 8851ad888c
commit 2aad4b8bf0
20 changed files with 1071 additions and 37 deletions

View File

@@ -3,18 +3,34 @@ import unittest
from src.interfaces.agents.agent import Agent
from src.modules.pdf.pdfAgent import PDFAgent
from src.modules.pdf.tools.metadataPDFTool import PDFMetadataTool
class TestPDFAgent(unittest.TestCase):
def setUp(self):
self.agent: Agent
self.agent: Agent = PDFAgent()
return super().setUp()
def createAgent(self):
self.agent = PDFAgent()
self.agent.createAgent()
self.assertIsNone(self.agent)
def test_createAgent(self):
self.assertIsInstance(self.agent, Agent)
self.assertEqual(self.agent.name, "PDF Agent")
self.assertEqual(self.agent.description, "Agent to handle PDF operations")
self.assertIsInstance(self.agent.tools, list)
def test_list_tools(self):
self.assertEqual(self.agent.list_tools(), [])
def test_create_tools(self):
metadataTool = PDFMetadataTool()
self.assertIsInstance(metadataTool, PDFMetadataTool)
self.assertEqual(metadataTool.name, "PDF Metadata Tool")
self.agent.add_tool(metadataTool)
tools = self.agent.get_tools()
self.assertEqual(tools, [metadataTool])
self.assertEqual(len(self.agent.tools), 1)
self.assertEqual(self.agent.tools[0].name, "PDF Metadata Tool")
# def test_

0
test/service/__init__.py Normal file
View File

View File

View File

@@ -1,16 +1,18 @@
import unittest
from unittest.mock import patch, MagicMock
from src.service.ollama.ollamaModelManager import OllamaModelManager
from src.service.ollama.ollamaService import OllamaService
class TestOllamaModelManager(unittest.TestCase):
class testOllamaService(unittest.TestCase):
def setUp(self):
self.model_manager = OllamaModelManager()
self.model_manager = OllamaService()
self.model_manager.base_url = "http://test-url:11434"
@patch('src.service.ollama.ollamaModelManager.requests.get')
@patch('src.service.ollama.ollamaService.requests.get')
def test_get_available_models_success(self, mock_get):
# Setup mock response
mock_response = MagicMock()
@@ -30,7 +32,7 @@ class TestOllamaModelManager(unittest.TestCase):
self.assertEqual(len(result), 2)
self.assertEqual(result, [{'name': 'model1'}, {'name': 'model2'}])
@patch('src.service.ollama.ollamaModelManager.requests.get')
@patch('src.service.ollama.ollamaService.requests.get')
def test_get_available_models_exception(self, mock_get):
# Setup mock to raise exception
mock_get.side_effect = Exception("Connection error")
@@ -41,7 +43,7 @@ class TestOllamaModelManager(unittest.TestCase):
# Assertions
self.assertEqual(result, [])
@patch('src.service.ollama.ollamaModelManager.requests.post')
@patch('src.service.ollama.ollamaService.requests.post')
def test_get_model_details_success(self, mock_post):
# Setup mock response
mock_response = MagicMock()
@@ -64,7 +66,7 @@ class TestOllamaModelManager(unittest.TestCase):
self.assertEqual(result['context_size'], 4096)
self.assertEqual(result['license'], 'Apache 2.0')
@patch('src.service.ollama.ollamaModelManager.requests.post')
@patch('src.service.ollama.ollamaService.requests.post')
def test_get_model_details_exception(self, mock_post):
# Setup mock to raise exception
mock_post.side_effect = Exception("API error")

View File

@@ -0,0 +1,22 @@
import unittest
class TestService(unittest.TestCase):
def setUp(self):
pass
def test_service_initialization(self):
from src.service.service import Service
# Test Ollama service
ollama_service = Service("ollama")
self.assertIsNotNone(ollama_service.service)
self.assertEqual(ollama_service.service.__class__.__name__,
"OllamaService")
self.assertEqual(ollama_service.service.base_url,"http://localhost:11434")
print(len(ollama_service.service.get_available_models()))
self.assertGreater(len(ollama_service.service.get_available_models()), 0)