23 lines
708 B
Python
23 lines
708 B
Python
import pytest
|
|
|
|
from clink.parsers.base import ParserError
|
|
from clink.parsers.codex import CodexJSONLParser
|
|
|
|
|
|
def test_codex_parser_success():
|
|
parser = CodexJSONLParser()
|
|
stdout = """
|
|
{"type":"item.completed","item":{"id":"item_0","type":"agent_message","text":"Hello"}}
|
|
{"type":"turn.completed","usage":{"input_tokens":10,"output_tokens":5}}
|
|
"""
|
|
parsed = parser.parse(stdout=stdout, stderr="")
|
|
assert parsed.content == "Hello"
|
|
assert parsed.metadata["usage"]["output_tokens"] == 5
|
|
|
|
|
|
def test_codex_parser_requires_agent_message():
|
|
parser = CodexJSONLParser()
|
|
stdout = '{"type":"turn.completed"}'
|
|
with pytest.raises(ParserError):
|
|
parser.parse(stdout=stdout, stderr="")
|