test: complete the readonly-stub pairing sweep (6 more files)

Final pass: per_model_threshold_init_ordering, memory_provider_init,
plugin_context_engine_init, api_max_retries_config,
invalid_context_length_warning, tool_call_guardrail_runtime all stub
agent_init config reads that now resolve through load_config_readonly().
Verified by running the complete 59-file suspect list (every test file
that stubs load_config in string or attribute form and intersects the
swapped modules): 3,063 tests, 0 failed.
This commit is contained in:
teknium1 2026-07-29 15:17:08 -07:00 committed by Teknium
parent a16fd675df
commit 7142dc4580
6 changed files with 15 additions and 1 deletions

View file

@ -17,7 +17,8 @@ def _make_agent(api_max_retries=None):
cfg["agent"]["api_max_retries"] = api_max_retries
with patch("run_agent.OpenAI"), \
patch("hermes_cli.config.load_config", return_value=cfg):
patch("hermes_cli.config.load_config", return_value=cfg), \
patch("hermes_cli.config.load_config_readonly", return_value=cfg):
return AIAgent(
api_key="test-key",
base_url="https://openrouter.ai/api/v1",

View file

@ -13,6 +13,7 @@ def _build_agent(model_cfg, custom_providers=None, model=None):
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch("agent.model_metadata.get_model_context_length", return_value=128_000),
patch("run_agent.get_tool_definitions", return_value=[]),
patch("run_agent.check_toolset_requirements", return_value={}),

View file

@ -32,6 +32,7 @@ def test_blank_memory_provider_does_not_auto_enable_honcho():
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch("hermes_cli.config.save_config") as save_config,
patch(
"plugins.memory.honcho.client.HonchoClientConfig.from_global_config",
@ -65,6 +66,7 @@ def test_aiagent_forwards_user_id_alt_to_memory_provider():
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch("plugins.memory.load_memory_provider", return_value=provider),
patch("agent.model_metadata.get_model_context_length", return_value=204_800),
patch("run_agent.get_tool_definitions", return_value=[]),
@ -142,6 +144,7 @@ def test_aiagent_forwards_warning_callback_to_cli_memory_provider():
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch("plugins.memory.load_memory_provider", return_value=provider),
patch("agent.model_metadata.get_model_context_length", return_value=204_800),
patch("run_agent.get_tool_definitions", return_value=[]),

View file

@ -60,6 +60,7 @@ def test_plugin_engine_gets_model_thresholds_before_initial_update_model():
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch("plugins.context_engine.load_context_engine", return_value=engine),
patch("agent.model_metadata.get_model_context_length", return_value=1_000_000),
patch("run_agent.get_tool_definitions", return_value=[]),
@ -98,6 +99,7 @@ def test_plugin_engine_without_overrides_keeps_global_threshold():
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch("plugins.context_engine.load_context_engine", return_value=engine),
patch("agent.model_metadata.get_model_context_length", return_value=1_000_000),
patch("run_agent.get_tool_definitions", return_value=[]),

View file

@ -46,6 +46,7 @@ def test_plugin_engine_gets_context_length_on_init():
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch("plugins.context_engine.load_context_engine", return_value=engine),
patch("agent.model_metadata.get_model_context_length", return_value=204_800),
patch("run_agent.get_tool_definitions", return_value=[]),
@ -83,6 +84,7 @@ def test_active_context_engine_tools_survive_explicit_platform_toolsets():
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch("plugins.context_engine.load_context_engine", return_value=engine),
patch("agent.model_metadata.get_model_context_length", return_value=204_800),
patch("run_agent.get_tool_definitions", return_value=[]),
@ -116,6 +118,7 @@ def test_plugin_engine_update_model_args():
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch("plugins.context_engine.load_context_engine", return_value=engine),
patch("agent.model_metadata.get_model_context_length", return_value=131_072),
patch("run_agent.get_tool_definitions", return_value=[]),
@ -169,6 +172,7 @@ def test_codex_gpt55_autoraise_suppressed_for_plugin_engine():
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch("plugins.context_engine.load_context_engine", return_value=engine),
patch("agent.model_metadata.get_model_context_length", return_value=272_000),
patch("run_agent.get_tool_definitions", return_value=[]),
@ -195,6 +199,7 @@ def test_codex_gpt55_autoraise_still_applies_to_builtin_compressor():
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch("agent.context_compressor.get_model_context_length", return_value=272_000),
patch("run_agent.get_tool_definitions", return_value=[]),
patch("run_agent.check_toolset_requirements", return_value={}),
@ -221,6 +226,7 @@ def test_codex_gpt55_autoraise_applies_when_plugin_engine_missing():
with (
patch("hermes_cli.config.load_config", return_value=cfg),
patch("hermes_cli.config.load_config_readonly", return_value=cfg),
patch(
"plugins.context_engine.load_context_engine",
side_effect=ValueError("not found"),

View file

@ -41,6 +41,7 @@ def _make_agent(*tool_names: str, max_iterations: int = 10, config: dict | None
patch("run_agent.get_tool_definitions", return_value=_make_tool_defs(*tool_names)),
patch("run_agent.check_toolset_requirements", return_value={}),
patch("hermes_cli.config.load_config", return_value=config or {}),
patch("hermes_cli.config.load_config_readonly", return_value=config or {}),
patch("run_agent.OpenAI"),
):
agent = AIAgent(