fix: modernize dependency recovery guidance (#5282)

This commit is contained in:
chengyongru
2026-08-07 13:58:13 +08:00
committed by GitHub
parent 02a002a0e6
commit ff6deda178
15 changed files with 113 additions and 29 deletions
@@ -1,5 +1,6 @@
from unittest.mock import patch, sentinel
from nanobot.providers import openai_compat_provider
from nanobot.providers.openai_compat_provider import OpenAICompatProvider
from nanobot.providers.registry import ProviderSpec
@@ -59,3 +60,22 @@ async def test_openai_compat_provider_timeout_can_be_overridden_by_env(monkeypat
await provider._ensure_client()
assert mock_async_openai.call_args.kwargs["timeout"] == 45.0
async def test_missing_langfuse_warning_recommends_plugin_command(monkeypatch) -> None:
monkeypatch.setenv("LANGFUSE_SECRET_KEY", "secret")
monkeypatch.setattr(openai_compat_provider, "AsyncOpenAI", None)
with (
patch("importlib.util.find_spec", return_value=None),
patch("openai.AsyncOpenAI") as mock_async_openai,
patch("nanobot.providers.openai_compat_provider.logger.warning") as mock_warning,
):
provider = OpenAICompatProvider(api_key="test-key", api_base="https://example.com/v1")
await provider._ensure_client()
mock_warning.assert_called_once_with(
"LANGFUSE_SECRET_KEY is set but langfuse is not installed; "
"run `nanobot plugins enable langfuse` to enable tracing"
)
mock_async_openai.assert_called_once()