atlas-iac/testing/tests/test_hermes_model_gate.py

40 lines
1.3 KiB
Python

"""Focused contracts for Hermes's local inference admission proxy."""
from __future__ import annotations
import json
from pathlib import Path
import yaml
HERMES = Path(__file__).parents[2] / "services/hermes"
def _model_gate_namespace() -> dict:
document = yaml.safe_load((HERMES / "model-gate-configmap.yaml").read_text())
namespace = {"__name__": "hermes_model_gate_test"}
exec(compile(document["data"]["model_gate.py"], "model_gate.py", "exec"), namespace)
return namespace
def test_model_gate_clamps_hosted_only_reasoning_efforts():
normalize = _model_gate_namespace()["_normalize_reasoning"]
top_level = json.loads(normalize(b'{"reasoning_effort":"xhigh"}'))
string_reasoning = json.loads(normalize(b'{"reasoning":"max"}'))
nested = json.loads(normalize(b'{"reasoning":{"effort":"xhigh"}}'))
assert top_level["reasoning_effort"] == "high"
assert string_reasoning["reasoning"] == "high"
assert nested["reasoning"]["effort"] == "high"
def test_model_gate_preserves_supported_and_non_json_requests():
normalize = _model_gate_namespace()["_normalize_reasoning"]
supported = b'{"reasoning_effort":"medium","messages":[]}'
non_json = b"streamed-body"
assert normalize(supported) == supported
assert normalize(non_json) == non_json