You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.6 KiB
47 lines
1.6 KiB
"""
|
|
Unit tests for agent functionality
|
|
"""
|
|
import pytest
|
|
from unittest.mock import Mock, patch
|
|
from src.agents.islamic_scholar_agent import IslamicScholarAgent
|
|
from src.models.openai import OpenAILikeModel
|
|
|
|
|
|
class TestIslamicScholarAgent:
|
|
"""Test cases for Islamic Scholar Agent"""
|
|
|
|
@pytest.fixture
|
|
def mock_model(self):
|
|
"""Mock model for testing"""
|
|
model = Mock()
|
|
model.get_model.return_value = Mock()
|
|
return model
|
|
|
|
@pytest.fixture
|
|
def mock_knowledge_base(self):
|
|
"""Mock knowledge base for testing"""
|
|
kb = Mock()
|
|
return kb
|
|
|
|
def test_agent_initialization(self, mock_model, mock_knowledge_base):
|
|
"""Test agent initialization"""
|
|
agent = IslamicScholarAgent(mock_model.get_model(), mock_knowledge_base)
|
|
|
|
assert agent.model == mock_model.get_model()
|
|
assert agent.knowledge_base == mock_knowledge_base
|
|
assert agent.agent is not None
|
|
|
|
def test_agent_instructions(self, mock_model, mock_knowledge_base):
|
|
"""Test agent has correct Islamic instructions"""
|
|
agent = IslamicScholarAgent(mock_model.get_model(), mock_knowledge_base)
|
|
|
|
instructions = agent.agent.instructions
|
|
assert "Islamic knowledge agent" in " ".join(instructions).lower()
|
|
assert "knowledge base" in " ".join(instructions).lower()
|
|
|
|
def test_get_agent_method(self, mock_model, mock_knowledge_base):
|
|
"""Test get_agent method returns configured agent"""
|
|
agent = IslamicScholarAgent(mock_model.get_model(), mock_knowledge_base)
|
|
|
|
returned_agent = agent.get_agent()
|
|
assert returned_agent == agent.agent
|