mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-14 09:03:16 +00:00
fix(rust): align native route quality gates
This commit is contained in:
parent
515f2e549e
commit
15534ba9b0
4 changed files with 23 additions and 12 deletions
|
|
@ -32,7 +32,7 @@ class NativeBinding(Generic[BindingT]):
|
|||
self._override: BindingT | None | _Unset = _UNSET
|
||||
|
||||
@classmethod
|
||||
def callable(cls, route: str, attribute: str) -> NativeBinding[BindingT]:
|
||||
def native(cls, route: str, attribute: str) -> NativeBinding[BindingT]:
|
||||
return cls(
|
||||
route,
|
||||
attribute,
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ class EndpointBinding(Generic[BindingT]):
|
|||
) -> EndpointBinding[BindingT]:
|
||||
binding: NativeBinding[BindingT] = cast( # cast-ok: classmethod loses the caller's generic parameter
|
||||
NativeBinding[BindingT],
|
||||
NativeBinding.callable(route, attribute),
|
||||
NativeBinding.native(route, attribute),
|
||||
)
|
||||
return EndpointBinding(
|
||||
route=route,
|
||||
|
|
|
|||
|
|
@ -136,6 +136,11 @@ ROUTE_CASES: Final = (
|
|||
"messages": [{"role": "user", "content": "hello-from-chat"}],
|
||||
"optional_params": {"max_tokens": 17},
|
||||
"api_key": "sk-native",
|
||||
"request_context": {
|
||||
"metadata": None,
|
||||
"litellm_metadata": None,
|
||||
"request_metadata_fields": [],
|
||||
},
|
||||
},
|
||||
assert_request=assert_chat_completions_request,
|
||||
success_value=lambda response: response["choices"][0]["message"]["content"],
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ def test_binding_loads_only_valid_native_attributes(
|
|||
expected: int | None,
|
||||
) -> None:
|
||||
monkeypatch.setattr(bindings, "get_native_bridge", lambda: native)
|
||||
monkeypatch.setattr(bindings, "native_route_ready", lambda _route: native is not None)
|
||||
monkeypatch.setattr(bindings, "native_route_ready", lambda _route, _capabilities: native is not None)
|
||||
binding: Final = bindings.NativeBinding(
|
||||
"test", "route", validate=lambda value: value if isinstance(value, int) else None
|
||||
)
|
||||
|
|
@ -39,18 +39,22 @@ def test_binding_loads_only_valid_native_attributes(
|
|||
)
|
||||
def test_callable_binding_rejects_non_callables(monkeypatch: pytest.MonkeyPatch, value: object) -> None:
|
||||
monkeypatch.setattr(bindings, "get_native_bridge", lambda: SimpleNamespace(route=value))
|
||||
monkeypatch.setattr(bindings, "native_route_ready", lambda _route: True)
|
||||
binding: Final[bindings.NativeBinding[object]] = bindings.NativeBinding.callable("test", "route")
|
||||
monkeypatch.setattr(bindings, "native_route_ready", lambda _route, _capabilities: True)
|
||||
binding: Final[bindings.NativeBinding[object]] = bindings.NativeBinding.native("test", "route")
|
||||
|
||||
assert binding.load() is None
|
||||
|
||||
|
||||
def test_callable_binding_resolves_override_and_reset(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
native_route: Final = lambda: "native"
|
||||
replacement: Final = lambda: "replacement"
|
||||
def native_route() -> str:
|
||||
return "native"
|
||||
|
||||
def replacement() -> str:
|
||||
return "replacement"
|
||||
|
||||
monkeypatch.setattr(bindings, "get_native_bridge", lambda: SimpleNamespace(route=native_route))
|
||||
monkeypatch.setattr(bindings, "native_route_ready", lambda _route: True)
|
||||
binding: Final[bindings.NativeBinding[object]] = bindings.NativeBinding.callable("test", "route")
|
||||
monkeypatch.setattr(bindings, "native_route_ready", lambda _route, _capabilities: True)
|
||||
binding: Final[bindings.NativeBinding[object]] = bindings.NativeBinding.native("test", "route")
|
||||
|
||||
assert binding.load() is native_route
|
||||
binding.override(None)
|
||||
|
|
@ -62,10 +66,12 @@ def test_callable_binding_resolves_override_and_reset(monkeypatch: pytest.Monkey
|
|||
|
||||
|
||||
def test_unregistered_callable_cannot_activate_dispatch(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
native_route: Final = lambda: "native"
|
||||
def native_route() -> str:
|
||||
return "native"
|
||||
|
||||
monkeypatch.setattr(bindings, "get_native_bridge", lambda: SimpleNamespace(route=native_route))
|
||||
monkeypatch.setattr(bindings, "native_route_ready", lambda _route: False)
|
||||
binding: Final[bindings.NativeBinding[object]] = bindings.NativeBinding.callable("test", "route")
|
||||
monkeypatch.setattr(bindings, "native_route_ready", lambda _route, _capabilities: False)
|
||||
binding: Final[bindings.NativeBinding[object]] = bindings.NativeBinding.native("test", "route")
|
||||
|
||||
assert binding.load() is None
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue