Co-authored-by: Albert Jiang <aj@mistral.ai> Co-authored-by: Clément Drouin <clement.drouin@mistral.ai> Co-authored-by: Laure Hugo <201583486+laure0303@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: Quentin <quentin.torroba@mistral.ai> Co-authored-by: Mistral Vibe <vibe@mistral.ai>
45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
from __future__ import annotations
|
|
|
|
from tests.conftest import build_test_vibe_config
|
|
from vibe import __version__
|
|
from vibe.core.experiments.active import ExperimentName
|
|
from vibe.core.telemetry.send import TelemetryClient
|
|
from vibe.core.utils import get_platform_id, get_platform_version
|
|
|
|
|
|
def _assert_system_metadata(metadata: dict[str, object]) -> None:
|
|
assert metadata["os"] == get_platform_id()
|
|
assert metadata["version"] == __version__
|
|
if os_version := get_platform_version():
|
|
assert metadata["os_version"] == os_version
|
|
else:
|
|
assert "os_version" not in metadata
|
|
|
|
|
|
def test_build_client_event_metadata_omits_experiments_when_empty() -> None:
|
|
config = build_test_vibe_config(enable_telemetry=True)
|
|
client = TelemetryClient(
|
|
config_getter=lambda: config, experiments_getter=lambda: {}
|
|
)
|
|
metadata = client.build_client_event_metadata()
|
|
assert "experiments" not in metadata
|
|
_assert_system_metadata(metadata)
|
|
|
|
|
|
def test_build_client_event_metadata_includes_experiments_when_present() -> None:
|
|
config = build_test_vibe_config(enable_telemetry=True)
|
|
sp_key = ExperimentName.SYSTEM_PROMPT.value
|
|
client = TelemetryClient(
|
|
config_getter=lambda: config, experiments_getter=lambda: {sp_key: "1"}
|
|
)
|
|
metadata = client.build_client_event_metadata()
|
|
assert metadata["experiments"] == {sp_key: "1"}
|
|
_assert_system_metadata(metadata)
|
|
|
|
|
|
def test_build_client_event_metadata_works_without_getter() -> None:
|
|
config = build_test_vibe_config(enable_telemetry=True)
|
|
client = TelemetryClient(config_getter=lambda: config)
|
|
metadata = client.build_client_event_metadata()
|
|
assert "experiments" not in metadata
|
|
_assert_system_metadata(metadata)
|