|
|
""" |
|
|
Basic Tests for GAIA Agent - Stage 1 Validation |
|
|
Author: @mangubee |
|
|
Date: 2026-01-01 |
|
|
|
|
|
Tests for Stage 1: Foundation Setup |
|
|
- Agent initialization |
|
|
- StateGraph compilation |
|
|
- Basic question processing |
|
|
""" |
|
|
|
|
|
import pytest |
|
|
from src.agent import GAIAAgent |
|
|
from src.config import Settings |
|
|
|
|
|
|
|
|
class TestAgentInitialization: |
|
|
"""Test agent initialization and configuration.""" |
|
|
|
|
|
def test_agent_init(self): |
|
|
"""Test that agent can be initialized without errors.""" |
|
|
agent = GAIAAgent() |
|
|
assert agent is not None |
|
|
assert agent.graph is not None |
|
|
print("β Agent initialization successful") |
|
|
|
|
|
def test_settings_load(self): |
|
|
"""Test that settings can be loaded.""" |
|
|
settings = Settings() |
|
|
assert settings is not None |
|
|
assert settings.max_retries == 3 |
|
|
assert settings.question_timeout == 1020 |
|
|
print("β Settings loaded successfully") |
|
|
|
|
|
|
|
|
class TestBasicExecution: |
|
|
"""Test basic agent execution with placeholder logic.""" |
|
|
|
|
|
def test_simple_question(self): |
|
|
"""Test agent with simple question.""" |
|
|
agent = GAIAAgent() |
|
|
answer = agent("What is 2+2?") |
|
|
assert isinstance(answer, str) |
|
|
assert len(answer) > 0 |
|
|
print(f"β Agent returned answer: {answer}") |
|
|
|
|
|
def test_long_question(self): |
|
|
"""Test agent with longer question.""" |
|
|
agent = GAIAAgent() |
|
|
long_question = "Explain the significance of the French Revolution in European history and its impact on modern democracy." |
|
|
answer = agent(long_question) |
|
|
assert isinstance(answer, str) |
|
|
assert len(answer) > 0 |
|
|
print(f"β Agent handled long question, returned: {answer[:50]}...") |
|
|
|
|
|
def test_multiple_calls(self): |
|
|
"""Test that agent can handle multiple sequential calls.""" |
|
|
agent = GAIAAgent() |
|
|
questions = [ |
|
|
"What is the capital of France?", |
|
|
"Who wrote Romeo and Juliet?", |
|
|
"What is 10 * 5?" |
|
|
] |
|
|
for q in questions: |
|
|
answer = agent(q) |
|
|
assert isinstance(answer, str) |
|
|
assert len(answer) > 0 |
|
|
print(f"β Agent successfully processed {len(questions)} questions") |
|
|
|
|
|
|
|
|
class TestStateGraphStructure: |
|
|
"""Test StateGraph structure and nodes.""" |
|
|
|
|
|
def test_graph_has_nodes(self): |
|
|
"""Test that compiled graph has expected nodes.""" |
|
|
agent = GAIAAgent() |
|
|
|
|
|
|
|
|
assert agent.graph is not None |
|
|
print("β StateGraph compiled with expected structure") |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
print("\n" + "="*70) |
|
|
print("GAIA Agent - Stage 1 Basic Tests") |
|
|
print("="*70 + "\n") |
|
|
|
|
|
|
|
|
test_init = TestAgentInitialization() |
|
|
test_init.test_agent_init() |
|
|
test_init.test_settings_load() |
|
|
|
|
|
test_exec = TestBasicExecution() |
|
|
test_exec.test_simple_question() |
|
|
test_exec.test_long_question() |
|
|
test_exec.test_multiple_calls() |
|
|
|
|
|
test_graph = TestStateGraphStructure() |
|
|
test_graph.test_graph_has_nodes() |
|
|
|
|
|
print("\n" + "="*70) |
|
|
print("β All Stage 1 tests passed!") |
|
|
print("="*70 + "\n") |
|
|
|