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:
@@ -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):
|
def _fake_atomic_json_write(path, payload, **kwargs):
|
||||||
calls.append((Path(path).name, 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)
|
monkeypatch.setattr(gateway_run, "atomic_json_write", _fake_atomic_json_write)
|
||||||
|
|
||||||
runner, _adapter = make_restart_runner()
|
runner, _adapter = make_restart_runner()
|
||||||
|
|||||||
@@ -86,12 +86,15 @@ class TestHandleUpdateCommand:
|
|||||||
class FakePath(type(Path())):
|
class FakePath(type(Path())):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
# Actually, simplest: just patch the specific file attr
|
# Actually, simplest: just patch the specific file attr.
|
||||||
fake_file = str(fake_root / "gateway" / "run.py")
|
# 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").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)
|
result = await runner._handle_update_command(event)
|
||||||
|
|
||||||
assert "Not a git repository" in result
|
assert "Not a git repository" in result
|
||||||
|
|||||||
@@ -188,11 +188,11 @@ class TestUsageAccountSection:
|
|||||||
event = MagicMock()
|
event = MagicMock()
|
||||||
|
|
||||||
monkeypatch.setattr(
|
monkeypatch.setattr(
|
||||||
"gateway.run.fetch_account_usage",
|
"gateway.slash_commands.fetch_account_usage",
|
||||||
lambda provider, base_url=None, api_key=None: object(),
|
lambda provider, base_url=None, api_key=None: object(),
|
||||||
)
|
)
|
||||||
monkeypatch.setattr(
|
monkeypatch.setattr(
|
||||||
"gateway.run.render_account_usage_lines",
|
"gateway.slash_commands.render_account_usage_lines",
|
||||||
lambda snapshot, markdown=False: [
|
lambda snapshot, markdown=False: [
|
||||||
"📈 **Account limits**",
|
"📈 **Account limits**",
|
||||||
"Provider: openai-codex (Pro)",
|
"Provider: openai-codex (Pro)",
|
||||||
@@ -235,11 +235,11 @@ class TestUsageAccountSection:
|
|||||||
|
|
||||||
monkeypatch.setattr("gateway.run.asyncio.to_thread", _fake_to_thread)
|
monkeypatch.setattr("gateway.run.asyncio.to_thread", _fake_to_thread)
|
||||||
monkeypatch.setattr(
|
monkeypatch.setattr(
|
||||||
"gateway.run.fetch_account_usage",
|
"gateway.slash_commands.fetch_account_usage",
|
||||||
lambda provider, base_url=None, api_key=None: object(),
|
lambda provider, base_url=None, api_key=None: object(),
|
||||||
)
|
)
|
||||||
monkeypatch.setattr(
|
monkeypatch.setattr(
|
||||||
"gateway.run.render_account_usage_lines",
|
"gateway.slash_commands.render_account_usage_lines",
|
||||||
lambda snapshot, markdown=False: [
|
lambda snapshot, markdown=False: [
|
||||||
"📈 **Account limits**",
|
"📈 **Account limits**",
|
||||||
"Provider: openai-codex (Pro)",
|
"Provider: openai-codex (Pro)",
|
||||||
|
|||||||
Reference in New Issue
Block a user