Files
hermes-webui/tests/test_run_journal_streaming_static.py
T
302843c89f Release: compact completed image tool-results (#6315, @sjungwon03) (#6371)
* fix(session): compact completed native vision results

* streaming: guard image-part compaction against unhashable part.type (isinstance str) + regression test [maintainer fix on @sjungwon03 #6315]

* docs(changelog): stamp #6315 completed-image tool-result compaction

---------

Co-authored-by: sjungwon03 <sjungwon03@gmail.com>
Co-authored-by: nesquena-hermes <agent@nesquena-hermes>
2026-07-20 20:11:29 +00:00

44 lines
1.9 KiB
Python

from pathlib import Path
from api.streaming import _compact_for_echo_compare
def test_streaming_initializes_one_run_journal_writer_per_stream():
src = Path("api/streaming.py").read_text(encoding="utf-8")
register_idx = src.index("register_active_run(")
writer_idx = src.index("RunJournalWriter(session_id, stream_id)", register_idx)
cancel_idx = src.index("cancel_event = threading.Event()", writer_idx)
assert "from api.run_journal import RunJournalWriter" in src
assert register_idx < writer_idx < cancel_idx
def test_streaming_journals_sse_events_before_queue_delivery():
src = Path("api/streaming.py").read_text(encoding="utf-8")
put_idx = src.index("def put(event, data):")
journal_idx = src.index("run_journal.append_sse_event(event, data)", put_idx)
queue_idx = src.index("q.put_nowait(queue_item)", put_idx)
block = src[put_idx:queue_idx]
assert put_idx < journal_idx < queue_idx
assert "Failed to append run journal event" in block
assert "queue_item = (event, data, event_id) if event_id and hasattr(q, \"subscribe_with_snapshot\") else (event, data)" in block
def test_streaming_compacts_all_successful_agent_result_writebacks():
src = Path("api/streaming.py").read_text(encoding="utf-8")
run_src = src[src.index("def _run_agent_streaming("):]
# Normal completion plus both credential self-heal retry-success paths must
# each compact after committing their own result shape. The retries use
# different local variable names, so guard the durable invariant itself.
assert run_src.count("_compact_session_image_parts_for_persistence(s)") == 3
def test_visible_process_echo_compare_ignores_all_whitespace():
token_text = "先把 issue 4249 拉下来\n\n先看正文和评论"
interim_text = "先把 issue 4249 拉下来先看正文和评论"
assert _compact_for_echo_compare(token_text) == _compact_for_echo_compare(interim_text)