Files
hermes-agent/tests/gateway/test_api_server_runs_import_isolation.py
teknium1 f5a2c70b12 test(api-server): RequestKey isolation test tolerates aiohttp < 3.14
The final assertion read `aiohttp.web_request.RequestKey` directly, which
AttributeErrors on the very aiohttp versions (< 3.14) the guarded import
exists to support. Compare against getattr(..., None) so the test checks
the module rebinds to whatever the real aiohttp provides.

Follow-up to #109157.
2026-09-12 08:27:53 -07:00

27 lines
884 B
Python

"""Import-time invariant: a missing ``RequestKey`` must not take ``web`` down with it."""
import importlib
import sys
import types
import aiohttp.web_request
from aiohttp import web
def test_missing_requestkey_keeps_web_module_bound():
import gateway.platforms.api_server_runs as api_server_runs
stub = types.ModuleType("aiohttp.web_request")
real = sys.modules["aiohttp.web_request"]
sys.modules["aiohttp.web_request"] = stub
try:
importlib.reload(api_server_runs)
assert api_server_runs.web is web
assert api_server_runs.RequestKey is None
finally:
sys.modules["aiohttp.web_request"] = real
importlib.reload(api_server_runs)
# aiohttp < 3.14 has no RequestKey; the module binds None there, so compare against getattr.
assert api_server_runs.RequestKey is getattr(aiohttp.web_request, "RequestKey", None)