Co-Authored-By: Quentin Torroba <quentin.torroba@mistral.ai> Co-Authored-By: Michel Thomazo <michel.thomazo@mistral.ai> Co-Authored-By: Vincent Guilloux <vincent.guilloux@mistral.ai>
61 lines
1.7 KiB
Python
61 lines
1.7 KiB
Python
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
import sys
|
|
from typing import Any
|
|
|
|
import pytest
|
|
import tomli_w
|
|
|
|
from vibe.core import config_path
|
|
|
|
|
|
def get_base_config() -> dict[str, Any]:
|
|
return {
|
|
"active_model": "devstral-latest",
|
|
"providers": [
|
|
{
|
|
"name": "mistral",
|
|
"api_base": "https://api.mistral.ai/v1",
|
|
"api_key_env_var": "MISTRAL_API_KEY",
|
|
"backend": "mistral",
|
|
}
|
|
],
|
|
"models": [
|
|
{
|
|
"name": "mistral-vibe-cli-latest",
|
|
"provider": "mistral",
|
|
"alias": "devstral-latest",
|
|
}
|
|
],
|
|
}
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def config_dir(
|
|
monkeypatch: pytest.MonkeyPatch, tmp_path_factory: pytest.TempPathFactory
|
|
) -> Path:
|
|
tmp_path = tmp_path_factory.mktemp("vibe")
|
|
config_dir = tmp_path / ".vibe"
|
|
config_dir.mkdir(parents=True, exist_ok=True)
|
|
config_file = config_dir / "config.toml"
|
|
config_file.write_text(tomli_w.dumps(get_base_config()), encoding="utf-8")
|
|
|
|
monkeypatch.setattr(config_path, "_DEFAULT_VIBE_HOME", config_dir)
|
|
return config_dir
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def _mock_api_key(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
monkeypatch.setenv("MISTRAL_API_KEY", "mock")
|
|
|
|
|
|
@pytest.fixture(autouse=True)
|
|
def _mock_platform(monkeypatch: pytest.MonkeyPatch) -> None:
|
|
"""Mock platform to be Linux with /bin/sh shell for consistent test behavior.
|
|
|
|
This ensures that platform-specific system prompt generation is consistent
|
|
across all tests regardless of the actual platform running the tests.
|
|
"""
|
|
monkeypatch.setattr(sys, "platform", "linux")
|
|
monkeypatch.setenv("SHELL", "/bin/sh")
|