mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-07-22 12:26:08 +00:00
test(workspace): add top-down release gates
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import asyncio
|
||||
from types import SimpleNamespace
|
||||
from unittest.mock import Mock
|
||||
from unittest.mock import AsyncMock, Mock
|
||||
|
||||
import pytest
|
||||
|
||||
@@ -104,3 +105,23 @@ def test_box_runtime_connector_dispose_terminates_subprocess(monkeypatch: pytest
|
||||
ctrl_task.cancel.assert_called_once()
|
||||
assert connector._handler_task is None
|
||||
assert connector._ctrl_task is None
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_box_runtime_connector_heartbeat_failure_requests_reconnect(monkeypatch: pytest.MonkeyPatch):
|
||||
monkeypatch.setattr('langbot.pkg.box.connector._HEARTBEAT_INTERVAL_SEC', 0)
|
||||
disconnected = asyncio.Event()
|
||||
callbacks = []
|
||||
|
||||
async def on_disconnect(connector):
|
||||
callbacks.append(connector)
|
||||
disconnected.set()
|
||||
|
||||
connector = BoxRuntimeConnector(make_app(Mock()), runtime_disconnect_callback=on_disconnect)
|
||||
connector._handler = SimpleNamespace(call_action=AsyncMock(side_effect=TimeoutError('silent runtime')))
|
||||
|
||||
heartbeat = asyncio.create_task(connector._heartbeat_loop())
|
||||
await asyncio.wait_for(disconnected.wait(), timeout=1)
|
||||
await heartbeat
|
||||
|
||||
assert callbacks == [connector]
|
||||
|
||||
Reference in New Issue
Block a user