23 lines
1.1 KiB
Python
23 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
from yuxi.utils.thread_utils import extract_thread_id
|
|
|
|
|
|
def test_extract_thread_id_reads_stable_event_paths():
|
|
assert extract_thread_id({"thread_id": " parent-thread "}) == "parent-thread"
|
|
assert extract_thread_id({"configurable": {"thread_id": "child-thread"}}) == "child-thread"
|
|
assert extract_thread_id({"metadata": {"thread_id": "meta-thread"}}) == "meta-thread"
|
|
assert extract_thread_id({"stream_event": {"thread_id": "event-thread"}}) == "event-thread"
|
|
assert extract_thread_id({"meta": {"thread_id": "run-thread"}}) == "run-thread"
|
|
|
|
|
|
def test_extract_thread_id_uses_fallback_for_missing_or_unstable_paths():
|
|
assert extract_thread_id(None, "fallback-thread") == "fallback-thread"
|
|
assert extract_thread_id({"thread_id": " "}, "fallback-thread") == "fallback-thread"
|
|
assert extract_thread_id({"data": {"metadata": {"thread_id": "nested-thread"}}}, "fallback-thread") == (
|
|
"fallback-thread"
|
|
)
|
|
assert extract_thread_id({"metadata": {"configurable": {"thread_id": "nested-thread"}}}, "fallback-thread") == (
|
|
"fallback-thread"
|
|
)
|