feat(python): typed ping/get_session_state/get_worker_info/drain_events session helpers
This commit is contained in:
@@ -234,3 +234,61 @@ async def test_suspend_and_activate_return_status() -> None:
|
||||
)
|
||||
status = await session.activate(12, 34)
|
||||
assert status.category == pb.MX_STATUS_CATEGORY_OK
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_ping_sends_message_and_returns_reply() -> None:
|
||||
session, stub = await _session_with([_ok(pb.MX_COMMAND_KIND_PING)])
|
||||
reply = await session.ping("hello")
|
||||
command = stub.invoke.requests[0].command
|
||||
assert command.kind == pb.MX_COMMAND_KIND_PING
|
||||
assert command.ping.message == "hello"
|
||||
assert reply.kind == pb.MX_COMMAND_KIND_PING
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_session_state_returns_state() -> None:
|
||||
session, stub = await _session_with(
|
||||
[
|
||||
_ok(
|
||||
pb.MX_COMMAND_KIND_GET_SESSION_STATE,
|
||||
session_state=pb.SessionStateReply(state=pb.SESSION_STATE_CLOSED),
|
||||
),
|
||||
],
|
||||
)
|
||||
state = await session.get_session_state()
|
||||
assert state == pb.SESSION_STATE_CLOSED
|
||||
assert stub.invoke.requests[0].command.kind == pb.MX_COMMAND_KIND_GET_SESSION_STATE
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_worker_info_returns_info() -> None:
|
||||
session, stub = await _session_with(
|
||||
[
|
||||
_ok(
|
||||
pb.MX_COMMAND_KIND_GET_WORKER_INFO,
|
||||
worker_info=pb.WorkerInfoReply(worker_process_id=42, worker_version="1.2"),
|
||||
),
|
||||
],
|
||||
)
|
||||
info = await session.get_worker_info()
|
||||
assert info.worker_process_id == 42
|
||||
assert info.worker_version == "1.2"
|
||||
assert stub.invoke.requests[0].command.kind == pb.MX_COMMAND_KIND_GET_WORKER_INFO
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_drain_events_sends_max_and_returns_events() -> None:
|
||||
session, stub = await _session_with(
|
||||
[
|
||||
_ok(
|
||||
pb.MX_COMMAND_KIND_DRAIN_EVENTS,
|
||||
drain_events=pb.DrainEventsReply(events=[pb.MxEvent(), pb.MxEvent()]),
|
||||
),
|
||||
],
|
||||
)
|
||||
events = await session.drain_events(max_events=5)
|
||||
assert len(events) == 2
|
||||
command = stub.invoke.requests[0].command
|
||||
assert command.kind == pb.MX_COMMAND_KIND_DRAIN_EVENTS
|
||||
assert command.drain_events.max_events == 5
|
||||
|
||||
Reference in New Issue
Block a user