litellm/tests/rust-python-harness/shared/tracing/test_compare.py
yujonglee 2c30fe16b0
Merge pull request #38765 from BerriAI/litellm_ocr_sdk_parity_tests
test(harness): add OCR parity with migration strategy runners
2026-09-03 10:16:35 -07:00

33 lines
1.3 KiB
Python

from __future__ import annotations
import pytest
from .compare import Operation, compare_traces
@pytest.mark.parametrize(
("rust", "message"),
(
((Operation("decode", 0, 1), Operation("send", 2, 3)), None),
((Operation("decode", 0, 1), Operation("send", 2, 3), Operation("send", 4, 5)), "call count differs"),
((Operation("send", 0, 1), Operation("decode", 2, 3)), "required order"),
((Operation("decode", 0, 4), Operation("send", 2, 3)), "required order"),
((Operation("decode", 0, 1), Operation("unknown", 2, 3)), "unmapped Rust"),
),
)
def test_compare_mapped_calls_and_required_completion_order(rust: tuple[Operation, ...], message: str | None) -> None:
problems = compare_traces(
(Operation("parse", 0, 1), Operation("request", 2, 3)),
rust,
{"parse": "decode", "request": "send"},
(("parse", "request"),),
)
if message is None:
assert problems == ()
else:
assert any(message in problem for problem in problems)
def test_missing_required_operations_and_ambiguous_mappings_fail() -> None:
assert compare_traces((), (), {"parse": "decode"}, (("parse", "request"),))
assert compare_traces((), (), {"parse": "decode", "request": "decode"}) == ("ambiguous Rust operation: decode",)