fix(compat-fallout): tui_gateway tests stub the defining modules (tools.browser_tool_lifecycle, tools.tts_tool_speaker) instead of the old tools.browser_tool/tts_tool facades

This commit is contained in:
Teknium
2026-09-03 15:45:55 -07:00
parent 6d39f797e6
commit 310bed4302
+22 -18
View File
@@ -17095,7 +17095,7 @@ def test_browser_manage_status_does_not_call_get_cdp_override(monkeypatch):
"_get_cdp_override must not run on /browser status (network I/O)"
)
)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
resp = server.handle_request(
{"id": "1", "method": "browser.manage", "params": {"action": "status"}}
)
@@ -17118,7 +17118,7 @@ def test_browser_manage_connect_sets_env_and_cleans_twice(monkeypatch):
cleanup_all_browsers=_cleanup_all,
_get_cdp_override=lambda: os.environ.get("BROWSER_CDP_URL", ""),
)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
_stub_urlopen(monkeypatch, ok=True)
resp = server.handle_request(
{
@@ -17144,7 +17144,7 @@ def test_browser_manage_connect_defaults_to_loopback(monkeypatch):
cleanup_all_browsers=lambda: None,
_get_cdp_override=lambda: os.environ.get("BROWSER_CDP_URL", ""),
)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
urls = _stub_urlopen_capture(monkeypatch, ok=True)
resp = server.handle_request(
{"id": "1", "method": "browser.manage", "params": {"action": "connect"}}
@@ -17174,7 +17174,7 @@ def test_browser_manage_connect_default_local_reports_launch_hint(monkeypatch):
cleanup_all_browsers=lambda: None,
_get_cdp_override=lambda: os.environ.get("BROWSER_CDP_URL", ""),
)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
_stub_urlopen(monkeypatch, ok=False)
with (
patch(
@@ -17233,7 +17233,7 @@ def test_browser_manage_connect_no_session_skips_progress_events(monkeypatch):
cleanup_all_browsers=lambda: None,
_get_cdp_override=lambda: os.environ.get("BROWSER_CDP_URL", ""),
)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
_stub_urlopen(monkeypatch, ok=False)
with (
patch(
@@ -17268,7 +17268,7 @@ def test_browser_manage_connect_handles_null_url(monkeypatch):
cleanup_all_browsers=lambda: None,
_get_cdp_override=lambda: os.environ.get("BROWSER_CDP_URL", ""),
)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
_stub_urlopen(monkeypatch, ok=True)
resp = server.handle_request(
{
@@ -17330,7 +17330,7 @@ def test_browser_manage_connect_default_local_retries_after_launch(monkeypatch):
monkeypatch.setattr(urllib.request, "urlopen", _opener)
launched = ChromeDebugLaunch(launched=True)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
with (
patch(
"hermes_cli.browser_connect.launch_chrome_debug",
@@ -17378,7 +17378,7 @@ def test_browser_manage_connect_finds_ipv6_only_browser(monkeypatch):
import urllib.request
monkeypatch.setattr(urllib.request, "urlopen", _opener)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
resp = server.handle_request(
{"id": "1", "method": "browser.manage", "params": {"action": "connect"}}
)
@@ -17422,7 +17422,7 @@ def test_browser_manage_connect_squatted_port_launches_on_alternate(monkeypatch)
launch_ports.append(port)
return ChromeDebugLaunch(launched=True)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
with (
patch("hermes_cli.browser_connect.launch_chrome_debug", side_effect=_launch),
patch("hermes_cli.browser_connect.local_port_in_use", return_value=True),
@@ -17449,7 +17449,7 @@ def test_browser_manage_connect_rejects_unreachable_endpoint(monkeypatch):
),
_get_cdp_override=lambda: os.environ.get("BROWSER_CDP_URL", ""),
)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
_stub_urlopen(monkeypatch, ok=False)
resp = server.handle_request(
{
@@ -17474,7 +17474,7 @@ def test_browser_manage_connect_normalizes_bare_host_port(monkeypatch):
cleanup_all_browsers=lambda: None,
_get_cdp_override=lambda: os.environ.get("BROWSER_CDP_URL", ""),
)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
_stub_urlopen(monkeypatch, ok=True)
resp = server.handle_request(
{
@@ -17500,7 +17500,7 @@ def test_browser_manage_connect_strips_discovery_path(monkeypatch):
cleanup_all_browsers=lambda: None,
_get_cdp_override=lambda: os.environ.get("BROWSER_CDP_URL", ""),
)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
_stub_urlopen(monkeypatch, ok=True)
resp = server.handle_request(
{
@@ -17532,7 +17532,7 @@ def test_browser_manage_connect_preserves_devtools_browser_endpoint(monkeypatch)
def __exit__(self, *a):
return False
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
# If urlopen is reached for a concrete ws endpoint, the test
# would still pass because _stub_urlopen returned ok=True before;
# patch it to assert-fail so we prove the HTTP probe is skipped.
@@ -17571,7 +17571,7 @@ def test_browser_manage_connect_local_devtools_ws_preserves_path(monkeypatch):
def __exit__(self, *a):
return False
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
with patch("socket.create_connection", return_value=_OkSocket()):
resp = server.handle_request(
{
@@ -17640,7 +17640,7 @@ def test_browser_manage_connect_concrete_ws_skips_http_probe(monkeypatch):
seen_targets.append(addr)
return _OkSocket()
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
# urlopen would 404/ECONNREFUSED on a real hosted CDP endpoint;
# asserting it's never called proves the probe was skipped.
with patch(
@@ -17671,7 +17671,7 @@ def test_browser_manage_connect_concrete_ws_tcp_unreachable(monkeypatch):
)
concrete = "ws://offline.example/devtools/browser/missing"
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
with patch("socket.create_connection", side_effect=OSError("ECONNREFUSED")):
resp = server.handle_request(
{
@@ -17694,7 +17694,7 @@ def test_browser_manage_disconnect_drops_env_and_cleans(monkeypatch):
),
_get_cdp_override=lambda: os.environ.get("BROWSER_CDP_URL", ""),
)
with patch.dict(sys.modules, {"tools.browser_tool": fake}):
with patch.dict(sys.modules, {"tools.browser_tool_lifecycle": fake}):
resp = server.handle_request(
{"id": "1", "method": "browser.manage", "params": {"action": "disconnect"}}
)
@@ -20074,12 +20074,16 @@ def _fake_tts_modules(monkeypatch, *, requirements=True, playback_stops=None, li
"tools.tts_tool",
types.SimpleNamespace(
check_tts_requirements=lambda: requirements,
stream_tts_to_speaker=fake_stream,
_get_provider=lambda cfg: "edge",
_load_tts_config=lambda: {},
get_env_value=lambda key, default="": default,
),
)
monkeypatch.setitem(
sys.modules,
"tools.tts_tool_speaker",
types.SimpleNamespace(stream_tts_to_speaker=fake_stream),
)
monkeypatch.setitem(
sys.modules,
"tools.voice_mode",