mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-09-04 02:01:48 +03:00
fix(sdk): preserve queued events on stream close
Signed-off-by: Lanre Shittu <136805224+Shizoqua@users.noreply.github.com>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
"""Tests for SDK streaming primitives."""
|
||||
|
||||
import asyncio
|
||||
|
||||
import pytest
|
||||
|
||||
from nanobot.sdk.streaming import SDKStreamEmitter
|
||||
from nanobot.sdk.types import STREAM_EVENT_TEXT_DELTA, StreamEvent
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_close_preserves_events_when_queue_is_full():
|
||||
queue: asyncio.Queue[StreamEvent | object] = asyncio.Queue(maxsize=1)
|
||||
emitter = SDKStreamEmitter(queue)
|
||||
event = StreamEvent(type=STREAM_EVENT_TEXT_DELTA, delta="kept")
|
||||
await emitter.emit(event)
|
||||
|
||||
close_task = asyncio.create_task(emitter.close())
|
||||
await asyncio.sleep(0)
|
||||
|
||||
assert not close_task.done()
|
||||
assert queue.get_nowait() is event
|
||||
await close_task
|
||||
assert queue.qsize() == 1
|
||||
Reference in New Issue
Block a user