feat(aggregation): Implement sub-agent summarization pass
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
import pytest
|
||||
from unittest.mock import MagicMock, patch
|
||||
from src import ai_client
|
||||
from src import summarize
|
||||
from pathlib import Path
|
||||
|
||||
def test_run_subagent_summarization_gemini():
|
||||
with patch("src.ai_client._provider", "gemini"), \
|
||||
patch("src.ai_client._gemini_client") as mock_client, \
|
||||
patch("src.ai_client._ensure_gemini_client"):
|
||||
mock_resp = MagicMock()
|
||||
mock_resp.text = "Smart Summary"
|
||||
mock_client.models.generate_content.return_value = mock_resp
|
||||
|
||||
res = ai_client.run_subagent_summarization("test.py", "print('hello')", True, "Outline")
|
||||
assert res == "Smart Summary"
|
||||
mock_client.models.generate_content.assert_called_once()
|
||||
|
||||
def test_run_subagent_summarization_anthropic():
|
||||
with patch("src.ai_client._provider", "anthropic"), \
|
||||
patch("src.ai_client._anthropic_client") as mock_client, \
|
||||
patch("src.ai_client._ensure_anthropic_client"):
|
||||
mock_resp = MagicMock()
|
||||
mock_block = MagicMock()
|
||||
mock_block.text = "Anthropic Summary"
|
||||
mock_resp.content = [mock_block]
|
||||
mock_client.messages.create.return_value = mock_resp
|
||||
|
||||
res = ai_client.run_subagent_summarization("test.py", "print('hello')", True, "Outline")
|
||||
assert res == "Anthropic Summary"
|
||||
mock_client.messages.create.assert_called_once()
|
||||
|
||||
def test_summarise_file_integration():
|
||||
with patch("src.ai_client.run_subagent_summarization") as mock_run:
|
||||
mock_run.return_value = "Smart AI Summary"
|
||||
|
||||
# Ensure we don't hit the real cache for this test
|
||||
with patch("src.summarize._summary_cache") as mock_cache:
|
||||
mock_cache.get_summary.return_value = None
|
||||
|
||||
p = Path("test_file.py")
|
||||
content = "def hello():\n pass"
|
||||
summary = summarize.summarise_file(p, content)
|
||||
|
||||
assert "Smart AI Summary" in summary
|
||||
assert "**Outline:**" in summary
|
||||
assert "functions: hello" in summary
|
||||
Reference in New Issue
Block a user