mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-08 22:21:35 +00:00
35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
from types import SimpleNamespace
|
|
from typing import Final
|
|
|
|
import pytest
|
|
|
|
from litellm.rust_bridge import bindings
|
|
|
|
|
|
def test_binding_distinguishes_disable_from_reset(monkeypatch) -> None:
|
|
native = SimpleNamespace(route=lambda: "native")
|
|
monkeypatch.setattr(bindings, "get_native_bridge", lambda: native)
|
|
binding: bindings.NativeBinding[object] = bindings.NativeBinding("route", validate=lambda value: value)
|
|
|
|
assert binding.load() is native.route
|
|
|
|
binding.override(None)
|
|
assert binding.load() is None
|
|
|
|
replacement = object()
|
|
binding.override(replacement)
|
|
assert binding.load() is replacement
|
|
|
|
binding.reset()
|
|
assert binding.load() is native.route
|
|
|
|
|
|
@pytest.mark.parametrize(("value", "expected"), ((3, 3), ("invalid", None), (None, None)))
|
|
def test_binding_validates_native_attribute(
|
|
monkeypatch: pytest.MonkeyPatch, value: object, expected: int | None
|
|
) -> None:
|
|
native: Final = SimpleNamespace(route=value)
|
|
monkeypatch.setattr(bindings, "get_native_bridge", lambda: native)
|
|
binding: Final = bindings.NativeBinding("route", validate=lambda item: item if isinstance(item, int) else None)
|
|
|
|
assert binding.load() == expected
|