mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-06 08:16:43 +00:00
33 lines
1.3 KiB
Python
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",)
|