mirror of
https://github.com/Alishahryar1/free-claude-code.git
synced 2026-04-28 19:40:54 +00:00
106 lines
3.2 KiB
Python
106 lines
3.2 KiB
Python
from messaging.event_parser import parse_cli_event
|
|
|
|
|
|
def test_parse_cli_event_assistant_content():
|
|
event = {
|
|
"type": "assistant",
|
|
"message": {
|
|
"content": [
|
|
{"type": "thinking", "thinking": "Internal thought"},
|
|
{"type": "text", "text": "Hello user"},
|
|
]
|
|
},
|
|
}
|
|
results = parse_cli_event(event)
|
|
assert len(results) == 2
|
|
assert results[0] == {"type": "thinking", "text": "Internal thought"}
|
|
assert results[1] == {"type": "content", "text": "Hello user"}
|
|
|
|
|
|
def test_parse_cli_event_assistant_tools():
|
|
event = {
|
|
"type": "assistant",
|
|
"message": {
|
|
"content": [{"type": "tool_use", "name": "ls", "input": {"path": "."}}]
|
|
},
|
|
}
|
|
results = parse_cli_event(event)
|
|
assert len(results) == 1
|
|
assert results[0]["type"] == "tool_start"
|
|
assert results[0]["tools"][0]["name"] == "ls"
|
|
|
|
|
|
def test_parse_cli_event_assistant_subagent():
|
|
event = {
|
|
"type": "assistant",
|
|
"message": {
|
|
"content": [
|
|
{
|
|
"type": "tool_use",
|
|
"name": "Task",
|
|
"input": {"description": "Fix bug"},
|
|
}
|
|
]
|
|
},
|
|
}
|
|
results = parse_cli_event(event)
|
|
assert len(results) == 1
|
|
assert results[0]["type"] == "subagent_start"
|
|
assert results[0]["tasks"] == ["Fix bug"]
|
|
|
|
|
|
def test_parse_cli_event_content_block_delta():
|
|
# Text delta
|
|
event_text = {
|
|
"type": "content_block_delta",
|
|
"delta": {"type": "text_delta", "text": " more"},
|
|
}
|
|
results_text = parse_cli_event(event_text)
|
|
assert results_text == [{"type": "content", "text": " more"}]
|
|
|
|
# Thinking delta
|
|
event_think = {
|
|
"type": "content_block_delta",
|
|
"delta": {"type": "thinking_delta", "thinking": " more thought"},
|
|
}
|
|
results_think = parse_cli_event(event_think)
|
|
assert results_think == [{"type": "thinking", "text": " more thought"}]
|
|
|
|
|
|
def test_parse_cli_event_content_block_start():
|
|
event = {
|
|
"type": "content_block_start",
|
|
"content_block": {
|
|
"type": "tool_use",
|
|
"name": "Task",
|
|
"input": {"description": "deploy"},
|
|
},
|
|
}
|
|
results = parse_cli_event(event)
|
|
assert results == [{"type": "subagent_start", "tasks": ["deploy"]}]
|
|
|
|
|
|
def test_parse_cli_event_error():
|
|
event = {"type": "error", "error": {"message": "something failed"}}
|
|
results = parse_cli_event(event)
|
|
assert results == [{"type": "error", "message": "something failed"}]
|
|
|
|
|
|
def test_parse_cli_event_exit_success():
|
|
event = {"type": "exit", "code": 0}
|
|
results = parse_cli_event(event)
|
|
assert results == [{"type": "complete", "status": "success"}]
|
|
|
|
|
|
def test_parse_cli_event_exit_failure():
|
|
event = {"type": "exit", "code": 1, "stderr": "fatal error"}
|
|
results = parse_cli_event(event)
|
|
assert len(results) == 2
|
|
assert results[0] == {"type": "error", "message": "fatal error"}
|
|
assert results[1] == {"type": "complete", "status": "failed"}
|
|
|
|
|
|
def test_parse_cli_event_invalid_input():
|
|
assert parse_cli_event(None) == []
|
|
assert parse_cli_event("not a dict") == []
|
|
assert parse_cli_event({"type": "unknown"}) == []
|