v2.7.5 (#589)
Co-authored-by: Bastien <bastien.baret@gmail.com> Co-authored-by: Clément Sirieix <clement.sirieix@mistral.ai> Co-authored-by: Julien Legrand <72564015+JulienLGRD@users.noreply.github.com> Co-authored-by: Kim-Adeline Miguel <51720070+kimadeline@users.noreply.github.com> Co-authored-by: Mathias Gesbert <mathias.gesbert@mistral.ai> Co-authored-by: Pierre Rossinès <pierre.rossines@mistral.ai> Co-authored-by: Quentin <quentin.torroba@mistral.ai> Co-authored-by: Vincent G <10739306+VinceOPS@users.noreply.github.com> Co-authored-by: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
parent
e9a9217cc8
commit
e1a25caa52
85 changed files with 2830 additions and 594 deletions
|
|
@ -1,14 +1,16 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Callable
|
||||
from types import SimpleNamespace
|
||||
|
||||
import pytest
|
||||
from textual.pilot import Pilot
|
||||
from textual.widgets import Input
|
||||
|
||||
from vibe.core.config import ProviderConfig
|
||||
from vibe.core.paths import GLOBAL_ENV_FILE
|
||||
from vibe.setup.onboarding import OnboardingApp
|
||||
from vibe.setup.onboarding.screens.api_key import ApiKeyScreen
|
||||
from vibe.setup.onboarding.screens.api_key import ApiKeyScreen, persist_api_key
|
||||
|
||||
|
||||
async def _wait_for(
|
||||
|
|
@ -55,3 +57,64 @@ async def test_ui_gets_through_the_onboarding_successfully() -> None:
|
|||
env_contents = GLOBAL_ENV_FILE.path.read_text(encoding="utf-8")
|
||||
assert "MISTRAL_API_KEY" in env_contents
|
||||
assert api_key_value in env_contents
|
||||
|
||||
|
||||
def test_api_key_screen_falls_back_to_mistral_for_provider_without_env_key() -> None:
|
||||
screen = ApiKeyScreen(
|
||||
provider=ProviderConfig(
|
||||
name="llamacpp", api_base="http://127.0.0.1:8080/v1", api_key_env_var=""
|
||||
)
|
||||
)
|
||||
|
||||
assert screen.provider.name == "mistral"
|
||||
assert screen.provider.api_key_env_var == "MISTRAL_API_KEY"
|
||||
|
||||
|
||||
def test_api_key_screen_keeps_provider_with_explicit_env_key() -> None:
|
||||
provider = ProviderConfig(
|
||||
name="custom",
|
||||
api_base="https://custom.example/v1",
|
||||
api_key_env_var="CUSTOM_API_KEY",
|
||||
)
|
||||
|
||||
screen = ApiKeyScreen(provider=provider)
|
||||
|
||||
assert screen.provider == provider
|
||||
|
||||
|
||||
def test_api_key_screen_uses_mistral_fallback_for_context_without_env_key(
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
) -> None:
|
||||
monkeypatch.setattr(
|
||||
"vibe.setup.onboarding.screens.api_key.OnboardingContext.load",
|
||||
lambda: SimpleNamespace(
|
||||
provider=ProviderConfig(
|
||||
name="llamacpp", api_base="http://127.0.0.1:8080/v1", api_key_env_var=""
|
||||
)
|
||||
),
|
||||
)
|
||||
|
||||
screen = ApiKeyScreen()
|
||||
|
||||
assert screen.provider.name == "mistral"
|
||||
assert screen.provider.api_key_env_var == "MISTRAL_API_KEY"
|
||||
|
||||
|
||||
def test_persist_api_key_returns_save_error_for_invalid_env_var_name() -> None:
|
||||
provider = ProviderConfig(
|
||||
name="custom", api_base="https://custom.example/v1", api_key_env_var="BAD=NAME"
|
||||
)
|
||||
|
||||
result = persist_api_key(provider, "secret")
|
||||
|
||||
assert result == "env_var_error:BAD=NAME"
|
||||
|
||||
|
||||
def test_persist_api_key_returns_env_var_error_for_empty_env_var_name() -> None:
|
||||
provider = ProviderConfig(
|
||||
name="custom", api_base="https://custom.example/v1", api_key_env_var=""
|
||||
)
|
||||
|
||||
result = persist_api_key(provider, "secret")
|
||||
|
||||
assert result == "env_var_error:<empty>"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue