Files
free-claude-code/tests/test_handler_format.py
T
2026-01-29 18:17:42 -08:00

89 lines
2.7 KiB
Python

import pytest
from unittest.mock import MagicMock
from messaging.handler import ClaudeMessageHandler
@pytest.fixture
def handler():
platform = MagicMock()
cli = MagicMock()
store = MagicMock()
return ClaudeMessageHandler(platform, cli, store)
def test_build_message_structure(handler):
"""Verify the order of message components."""
components = {
"thinking": ["Thinking process..."],
"tools": ["list_files", "read_file"],
"subagents": ["Searching codebase...", "Analyzing dependencies..."],
"content": ["Here is the file content."],
"errors": ["Some error happened"],
}
status = "✅ **Complete**"
msg = handler._build_message(components, status)
print(f"Generated Message:\n{msg}")
# Check existence
assert "Thinking process..." in msg
assert "list_files" in msg
assert "read_file" in msg
assert "Searching codebase..." in msg
assert "Here is the file content." in msg
assert "Some error happened" in msg
assert "✅ **Complete**" in msg
# Check headers
assert "💭 **Thinking:**" in msg
assert "🛠 **Tools:**" in msg
assert "🤖 **Subagent:**" in msg
assert "⚠️ **Error:**" in msg
# Check Order: Thinking -> Tools -> Subagents -> Content -> Errors -> Status
p_thinking = msg.find("Thinking process...")
p_tools = msg.find("🛠 **Tools:**")
p_subagents = msg.find("🤖 **Subagent:**")
p_content = msg.find("Here is the file content.")
p_errors = msg.find("⚠️ **Error:**")
p_status = msg.find("✅ **Complete**")
assert p_thinking < p_tools, "Thinking should come before Tools"
assert p_tools < p_subagents, "Tools should come before Subagents"
assert p_subagents < p_content, "Subagents should come before Content"
assert p_content < p_errors, "Content should come before Errors"
assert p_errors < p_status, "Errors should come before Status"
def test_build_message_simple(handler):
"""Verify simple message with just content."""
components = {
"thinking": [],
"tools": [],
"subagents": [],
"content": ["Simple message."],
"errors": [],
}
msg = handler._build_message(components, "Ready")
assert "Simple message." in msg
assert "Ready" in msg
assert "💭" not in msg
assert "🛠" not in msg
def test_subagents_formatting(handler):
"""Verify subagents formatting."""
components = {
"thinking": [],
"tools": [],
"subagents": ["Task 1", "Task 2"],
"content": [],
"errors": [],
}
msg = handler._build_message(components)
assert "🤖 **Subagent:** `Task 1`" in msg
assert "🤖 **Subagent:** `Task 2`" in msg