fix(tests): fix 11 real test failures + major cascade poisoner (#4570)

Three root causes addressed:

1. AIAgent no longer defaults base_url to OpenRouter (9 tests)
   Tests that assert OpenRouter-specific behavior (prompt caching,
   reasoning extra_body, provider preferences) need explicit base_url
   and model set on the agent. Updated test_run_agent.py and
   test_provider_parity.py.

2. Credential pool auto-seeding from host env (2 tests)
   test_auxiliary_client.py tests for Anthropic OAuth and custom
   endpoint fallback were not mocking _select_pool_entry, so the
   host's credential pool interfered. Added pool + codex mocks.

3. sys.modules corruption cascade (major - ~250 tests)
   test_managed_modal_environment.py replaced sys.modules entries
   (tools, hermes_cli, agent packages) with SimpleNamespace stubs
   but had NO cleanup fixture. Every subsequent test in the process
   saw corrupted imports: 'cannot import get_config_path from
   <unknown module name>' and 'module tools has no attribute
   environments'. Added _restore_tool_and_agent_modules autouse
   fixture matching the pattern in test_managed_browserbase_and_modal.py.

   This was also the root cause of CI failures (104 failed on main).
This commit is contained in:
Teknium 2026-04-02 08:43:06 -07:00 committed by GitHub
parent 624ad582a5
commit acea9ee20b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 43 additions and 8 deletions

View file

@ -27,6 +27,24 @@ def _reset_modules(prefixes: tuple[str, ...]):
sys.modules.pop(name, None)
@pytest.fixture(autouse=True)
def _restore_tool_and_agent_modules():
"""Save and restore sys.modules entries so fakes don't leak to other tests."""
original_modules = {
name: module
for name, module in sys.modules.items()
if name in ("tools", "agent", "hermes_cli")
or name.startswith("tools.")
or name.startswith("agent.")
or name.startswith("hermes_cli.")
}
try:
yield
finally:
_reset_modules(("tools", "agent", "hermes_cli"))
sys.modules.update(original_modules)
def _install_fake_tools_package(*, credential_mounts=None):
_reset_modules(("tools", "agent", "hermes_cli"))