vibe/tests/core/test_config_load_dotenv.py
Mathias Gesbert 9809cfc831 v2.0.2
Co-Authored-By: Vincent Guilloux <vincent.guilloux@mistral.ai>
Co-Authored-By: Clément Siriex <clement.sirieix@mistral.ai>
Co-Authored-By: Kim-Adeline Miguel <kimadeline.miguel@mistral.ai>
2026-01-30 14:49:41 +01:00

61 lines
1.6 KiB
Python

from __future__ import annotations
from pathlib import Path
from vibe.core.config import load_dotenv_values
def _write_env_file(path: Path, content: str) -> None:
path.write_text(content, encoding="utf-8")
def test_skips_missing_file(tmp_path: Path) -> None:
environ = {"EXISTING": "1"}
missing_path = tmp_path / "missing.env"
load_dotenv_values(env_path=missing_path, environ=environ)
assert environ == {"EXISTING": "1"}
def test_sets_and_overrides_values(tmp_path: Path) -> None:
env_path = tmp_path / ".env"
_write_env_file(
env_path,
"\n".join([
"MISTRAL_API_KEY=new-key",
"HTTPS_PROXY=https://local-proxy:8080",
"OTHER=from-env",
"NEW_KEY=added",
"FOO=replace",
])
+ "\n",
)
environ = {
"MISTRAL_API_KEY": "old-key",
"HTTPS_PROXY": "old-https",
"OTHER": "keep",
"FOO": "keep",
}
load_dotenv_values(env_path=env_path, environ=environ)
assert environ["MISTRAL_API_KEY"] == "new-key"
assert environ["HTTPS_PROXY"] == "https://local-proxy:8080"
assert environ["OTHER"] == "from-env"
assert environ["NEW_KEY"] == "added"
assert environ["FOO"] == "replace"
def test_ignores_empty_values(tmp_path: Path) -> None:
env_path = tmp_path / ".env"
_write_env_file(
env_path, "\n".join(["EMPTY=", "MISTRAL_API_KEY=", "NO_VALUE"]) + "\n"
)
environ: dict[str, str] = {}
load_dotenv_values(env_path=env_path, environ=environ)
assert "EMPTY" not in environ
assert "MISTRAL_API_KEY" not in environ
assert "NO_VALUE" not in environ