mirror of
https://github.com/BerriAI/litellm.git
synced 2026-11-02 07:13:02 +00:00
* refactor(rust-bridge): require the native extension _native ships in every wheel and the sdist will not install without it, yet the bridge loaded it optionally and carried None paths that could fail open for fork safety, exception mapping and OTLP errors. Delete loader.py and import _native directly. Tests inject a fake module through NativeBinding(source=...) or with_source() instead of patching the loader The install smoke checks now verify the compiled module, and tests fail instead of skipping when _native is missing. The interactions spec canary installs the project so it has the extension Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(ci): build Rust bridge in Windows smoke tests --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
21 lines
693 B
Python
21 lines
693 B
Python
import pytest
|
|
|
|
from litellm.rust_bridge import fork_guard
|
|
|
|
|
|
def test_unused_extension_is_reserved() -> None:
|
|
calls: list[None] = []
|
|
|
|
fork_guard.reserve_process_for_forking("the gunicorn master", reserve=lambda: calls.append(None))
|
|
|
|
assert calls == [None]
|
|
|
|
|
|
def test_used_extension_refuses_and_names_the_place() -> None:
|
|
def reserve() -> None:
|
|
raise RuntimeError("the native runtime already started in this process")
|
|
|
|
with pytest.raises(fork_guard.NativeStateStartedBeforeFork, match="the gunicorn master") as raised:
|
|
fork_guard.reserve_process_for_forking("the gunicorn master", reserve=reserve)
|
|
|
|
assert isinstance(raised.value.__cause__, RuntimeError)
|