test(gateway): repoint slash-command mocks after mixin extraction

Tests for the extracted handlers mocked symbols at gateway.run.*; the handlers
now resolve top-level-imported deps (atomic_json_write, fetch_account_usage,
render_account_usage_lines) and __file__ from gateway.slash_commands. Repoint
those mocks. run.py-resident methods (_increment_restart_failure_counts,
_clear_restart_failure_count) keep their gateway.run.atomic_json_write mock —
only the moved handlers' mocks change.

tests/gateway/ 6415 passed / 0 failed.
This commit is contained in:
teknium1 2026-06-08 00:00:01 -07:00 committed by Teknium
parent 619bd78273
commit de5fe2fa7d
3 changed files with 15 additions and 8 deletions

View file

@ -153,6 +153,10 @@ async def test_restart_command_uses_atomic_json_writes_for_marker_files(tmp_path
def _fake_atomic_json_write(path, payload, **kwargs):
calls.append((Path(path).name, payload, kwargs))
# _handle_restart_command lives in gateway/slash_commands.py (extracted from
# run.py); it uses that module's top-level atomic_json_write import.
import gateway.slash_commands as gateway_slash
monkeypatch.setattr(gateway_slash, "atomic_json_write", _fake_atomic_json_write)
monkeypatch.setattr(gateway_run, "atomic_json_write", _fake_atomic_json_write)
runner, _adapter = make_restart_runner()

View file

@ -86,12 +86,15 @@ class TestHandleUpdateCommand:
class FakePath(type(Path())):
pass
# Actually, simplest: just patch the specific file attr
fake_file = str(fake_root / "gateway" / "run.py")
# Actually, simplest: just patch the specific file attr.
# The _handle_update_command handler lives in gateway/slash_commands.py
# (extracted from run.py in the god-file decomposition); it resolves
# project_root via Path(__file__).parent.parent, so fake that file.
fake_file = str(fake_root / "gateway" / "slash_commands.py")
(fake_root / "gateway").mkdir(parents=True)
(fake_root / "gateway" / "run.py").touch()
(fake_root / "gateway" / "slash_commands.py").touch()
with patch("gateway.run.__file__", fake_file):
with patch("gateway.slash_commands.__file__", fake_file):
result = await runner._handle_update_command(event)
assert "Not a git repository" in result

View file

@ -188,11 +188,11 @@ class TestUsageAccountSection:
event = MagicMock()
monkeypatch.setattr(
"gateway.run.fetch_account_usage",
"gateway.slash_commands.fetch_account_usage",
lambda provider, base_url=None, api_key=None: object(),
)
monkeypatch.setattr(
"gateway.run.render_account_usage_lines",
"gateway.slash_commands.render_account_usage_lines",
lambda snapshot, markdown=False: [
"📈 **Account limits**",
"Provider: openai-codex (Pro)",
@ -235,11 +235,11 @@ class TestUsageAccountSection:
monkeypatch.setattr("gateway.run.asyncio.to_thread", _fake_to_thread)
monkeypatch.setattr(
"gateway.run.fetch_account_usage",
"gateway.slash_commands.fetch_account_usage",
lambda provider, base_url=None, api_key=None: object(),
)
monkeypatch.setattr(
"gateway.run.render_account_usage_lines",
"gateway.slash_commands.render_account_usage_lines",
lambda snapshot, markdown=False: [
"📈 **Account limits**",
"Provider: openai-codex (Pro)",