kaizen-agentic/tests/test_core.py

118 lines
3.1 KiB
Python
Raw Permalink Normal View History

"""
Test for core agent functionality.
This test module validates the core Agent and AgentConfig classes.
"""
import pytest
from kaizen_agentic.core import Agent, AgentConfig
class TestAgentConfig:
"""Test suite for AgentConfig functionality."""
def setup_method(self):
"""Set up test environment."""
self.config_data = {
"name": "test-agent",
"description": "Test agent for validation",
"model": "test-model",
}
def teardown_method(self):
"""Clean up after tests."""
pass
def test_basic_functionality(self):
"""Test basic AgentConfig functionality."""
# Arrange
config = AgentConfig(**self.config_data)
# Act & Assert
assert config.name == "test-agent"
assert config.description == "Test agent for validation"
assert config.model == "test-model"
assert config.metadata == {}
def test_metadata_initialization(self):
"""Test metadata initialization."""
# Arrange & Act
config = AgentConfig(name="test", description="test", metadata={"key": "value"})
# Assert
assert config.metadata == {"key": "value"}
def test_default_metadata(self):
"""Test default metadata initialization."""
# Arrange & Act
config = AgentConfig(name="test", description="test")
# Assert
assert config.metadata == {}
class MockAgent(Agent):
"""Mock agent implementation for testing."""
def execute(self, task: str, context=None):
"""Mock execution that returns test data."""
return {
"result": f"Executed: {task}",
"success": True,
"execution_time": 1.0,
}
class TestAgent:
"""Test suite for Agent functionality."""
def setup_method(self):
"""Set up test environment."""
self.config = AgentConfig(
name="mock-agent", description="Mock agent for testing"
)
self.agent = MockAgent(self.config)
def teardown_method(self):
"""Clean up after tests."""
pass
def test_basic_functionality(self):
"""Test basic Agent functionality."""
# Arrange
task = "test task"
# Act
result = self.agent.execute(task)
# Assert
assert result["result"] == "Executed: test task"
assert result["success"] is True
def test_performance_recording(self):
"""Test performance metrics recording."""
# Arrange
metrics = {"execution_time": 2.5, "success_rate": 0.95}
# Act
self.agent.record_performance(metrics)
# Assert
assert len(self.agent.performance_history) == 1
assert self.agent.performance_history[0] == metrics
def test_configuration_update(self):
"""Test agent configuration updates."""
# Arrange
updates = {"new_param": "new_value"}
# Act
self.agent.update_configuration(updates)
# Assert
assert self.agent.config.metadata["new_param"] == "new_value"
if __name__ == "__main__":
pytest.main([__file__, "-v"])