diff --git a/tests/webui/test_settings_api.py b/tests/webui/test_settings_api.py index b6fd99a8..1ad2bec9 100644 --- a/tests/webui/test_settings_api.py +++ b/tests/webui/test_settings_api.py @@ -1,5 +1,6 @@ from __future__ import annotations +import builtins import json from types import SimpleNamespace @@ -880,6 +881,42 @@ def test_openai_codex_oauth_login_passes_configured_proxy( assert captured == {"get_proxy": proxy, "login_proxy": proxy} +def test_openai_codex_oauth_login_reports_missing_oauth_cli_kit( + monkeypatch: pytest.MonkeyPatch, +) -> None: + real_import = builtins.__import__ + + def fake_import(name, *args, **kwargs): + if name == "oauth_cli_kit": + raise ImportError("missing") + return real_import(name, *args, **kwargs) + + monkeypatch.setattr(builtins, "__import__", fake_import) + + with pytest.raises(WebUISettingsError) as exc: + login_oauth_provider({"provider": ["openai-codex"]}) + + assert "oauth_cli_kit not installed. Run: pip install oauth-cli-kit" in str(exc.value) + + +def test_github_copilot_oauth_login_reports_missing_oauth_cli_kit( + monkeypatch: pytest.MonkeyPatch, +) -> None: + real_import = builtins.__import__ + + def fake_import(name, *args, **kwargs): + if name == "nanobot.providers.github_copilot_provider": + raise ImportError("missing") + return real_import(name, *args, **kwargs) + + monkeypatch.setattr(builtins, "__import__", fake_import) + + with pytest.raises(WebUISettingsError) as exc: + login_oauth_provider({"provider": ["github-copilot"]}) + + assert "oauth_cli_kit not installed. Run: pip install oauth-cli-kit" in str(exc.value) + + def test_provider_models_payload_fetches_openai_compatible_models( tmp_path, monkeypatch: pytest.MonkeyPatch,