Final_Assignment_Template / tests /test_config.py
yc1838
updated to print
0bfffbc
Raw
History Blame Contribute Delete
2.07 kB
from __future__ import annotations
from dataclasses import fields
from lilith_agent.config import Config
def test_config_has_no_dead_max_json_repairs_field():
"""Guard: max_json_repairs was unused anywhere in src/ and was removed."""
field_names = {f.name for f in fields(Config)}
assert "max_json_repairs" not in field_names
def test_config_from_env_loads_without_errors():
cfg = Config.from_env()
assert cfg.recursion_limit > 0
assert cfg.cheap_provider
assert cfg.strong_provider
def test_budget_knobs_have_sensible_defaults():
cfg = Config.from_env()
assert cfg.budget_hard_cap >= cfg.budget_warn_at > 0
assert 0.0 < cfg.semantic_dedup_threshold <= 1.0
def test_budget_knobs_are_env_overridable(monkeypatch):
monkeypatch.setenv("GAIA_BUDGET_HARD_CAP", "7")
monkeypatch.setenv("GAIA_BUDGET_WARN_AT", "3")
monkeypatch.setenv("GAIA_SEMANTIC_DEDUP_THRESHOLD", "0.8")
cfg = Config.from_env()
assert cfg.budget_hard_cap == 7
assert cfg.budget_warn_at == 3
assert abs(cfg.semantic_dedup_threshold - 0.8) < 1e-9
def test_compact_summarize_defaults_on_and_is_env_overridable(monkeypatch):
monkeypatch.delenv("GAIA_COMPACT_SUMMARIZE", raising=False)
assert Config.from_env().compact_summarize is True
monkeypatch.setenv("GAIA_COMPACT_SUMMARIZE", "false")
assert Config.from_env().compact_summarize is False
def test_answer_contract_defaults_on_and_is_env_overridable(monkeypatch):
monkeypatch.delenv("GAIA_ANSWER_CONTRACT_ENABLED", raising=False)
assert Config.from_env().answer_contract_enabled is True
monkeypatch.setenv("GAIA_ANSWER_CONTRACT_ENABLED", "false")
assert Config.from_env().answer_contract_enabled is False
def test_give_up_recovery_defaults_on_and_is_env_overridable(monkeypatch):
monkeypatch.delenv("GAIA_GIVE_UP_RECOVERY_ENABLED", raising=False)
assert Config.from_env().give_up_recovery_enabled is True
monkeypatch.setenv("GAIA_GIVE_UP_RECOVERY_ENABLED", "false")
assert Config.from_env().give_up_recovery_enabled is False