vibe/tests/core/test_overrides_layer.py
Clément Drouin 6bedf271ce
v2.17.0 (#822)
Co-authored-by: Clément Sirieix <clement.sirieix@mistral.ai>
Co-authored-by: Guillaume LE GOFF <guillaume.lgf@gmail.com>
Co-authored-by: Hdandria <henri.dandria@mistral.ai>
Co-authored-by: Ivana Dunisijevic <ivana.dunisijevic@mistral.ai>
Co-authored-by: Jean Burellier <sheplu@users.noreply.github.com>
Co-authored-by: Mathias Gesbert <mathias.gesbert@mistral.ai>
Co-authored-by: Mert Unsal <mert.unsal@mistral.ai>
Co-authored-by: Michel Thomazo <51709227+michelTho@users.noreply.github.com>
Co-authored-by: Paul VEZIA <166131032+le-codeur-rapide@users.noreply.github.com>
Co-authored-by: Pierre Rossinès <pierre.rossines@mistral.ai>
Co-authored-by: Val <102326092+vdeva@users.noreply.github.com>
Co-authored-by: Vincent G <10739306+VinceOPS@users.noreply.github.com>
Co-authored-by: renovate-mistral[bot] <253709520+renovate-mistral[bot]@users.noreply.github.com>
Co-authored-by: Mistral Vibe <vibe@mistral.ai>
2026-06-19 11:01:24 +02:00

81 lines
2.2 KiB
Python

from __future__ import annotations
import pytest
from vibe.core.config.layers.overrides import OverridesLayer
@pytest.mark.asyncio
async def test_returns_provided_dict() -> None:
data = {"active_model": "custom", "api_timeout": 30.0}
layer = OverridesLayer(data=data)
result = await layer.load()
assert result.model_extra == data
@pytest.mark.asyncio
async def test_always_trusted() -> None:
layer = OverridesLayer(data={})
assert await layer.resolve_trust() is True
@pytest.mark.asyncio
async def test_default_name() -> None:
layer = OverridesLayer(data={})
assert layer.name == "overrides"
@pytest.mark.asyncio
async def test_custom_name() -> None:
layer = OverridesLayer(data={}, name="cli-overrides")
assert layer.name == "cli-overrides"
@pytest.mark.asyncio
async def test_empty_dict() -> None:
layer = OverridesLayer(data={})
result = await layer.load()
assert result.model_extra == {}
@pytest.mark.asyncio
async def test_nested_data_preserved() -> None:
data = {"models": {"active_model": "test"}, "tools": {"enabled_tools": ["a"]}}
layer = OverridesLayer(data=data)
result = await layer.load()
assert result.model_extra == data
@pytest.mark.asyncio
async def test_force_reload_returns_same_data() -> None:
data = {"key": "value"}
layer = OverridesLayer(data=data)
await layer.load()
result = await layer.load(force=True)
assert result.model_extra == data
@pytest.mark.asyncio
async def test_output_isolated_from_internal_data() -> None:
data = {"key": "value"}
layer = OverridesLayer(data=data)
result = await layer.load()
# Mutating the returned model_extra must not affect subsequent loads
assert result.model_extra is not None
result.model_extra["key"] = "mutated"
result2 = await layer.load(force=True)
assert result2.model_extra == {"key": "value"}
@pytest.mark.asyncio
async def test_live_reference_picks_up_caller_mutation() -> None:
data: dict[str, object] = {"key": "original"}
layer = OverridesLayer(data=data)
await layer.load()
fp1 = layer.fingerprint
data["key"] = "updated"
result = await layer.load(force=True)
fp2 = layer.fingerprint
assert result.model_extra == {"key": "updated"}
assert fp1 != fp2