auto-sync: 2026-05-17 06:13:14
This commit is contained in:
+39
-32
@@ -44,28 +44,31 @@ class TestSSEEvent:
|
||||
class TestSSEBroker:
|
||||
def test_subscribe_returns_queue(self):
|
||||
broker = SSEBroker()
|
||||
cid, queue = broker.subscribe()
|
||||
assert cid
|
||||
assert isinstance(queue, asyncio.Queue)
|
||||
async def _test():
|
||||
cid, queue = broker.subscribe()
|
||||
assert cid
|
||||
assert isinstance(queue, asyncio.Queue)
|
||||
asyncio.run(_test())
|
||||
|
||||
def test_publish_to_subscriber(self):
|
||||
broker = SSEBroker()
|
||||
cid, queue = broker.subscribe()
|
||||
|
||||
delivered = asyncio.run(broker.publish("task_created", {"id": "t1"}))
|
||||
assert delivered == 1
|
||||
|
||||
event = queue.get_nowait()
|
||||
assert event.event_type == "task_created"
|
||||
assert event.data["id"] == "t1"
|
||||
async def _test():
|
||||
cid, queue = broker.subscribe()
|
||||
delivered = await broker.publish("task_created", {"id": "t1"})
|
||||
assert delivered == 1
|
||||
event = queue.get_nowait()
|
||||
assert event.event_type == "task_created"
|
||||
assert event.data["id"] == "t1"
|
||||
asyncio.run(_test())
|
||||
|
||||
def test_unsubscribe(self):
|
||||
broker = SSEBroker()
|
||||
cid, _ = broker.subscribe()
|
||||
assert broker.subscriber_count == 1
|
||||
|
||||
broker.unsubscribe(cid)
|
||||
assert broker.subscriber_count == 0
|
||||
async def _test():
|
||||
cid, _ = broker.subscribe()
|
||||
assert broker.subscriber_count == 1
|
||||
broker.unsubscribe(cid)
|
||||
assert broker.subscriber_count == 0
|
||||
asyncio.run(_test())
|
||||
|
||||
def test_publish_no_subscribers(self):
|
||||
broker = SSEBroker()
|
||||
@@ -82,11 +85,12 @@ class TestSSEBroker:
|
||||
|
||||
def test_history_replays_to_new_subscriber(self):
|
||||
broker = SSEBroker()
|
||||
asyncio.run(broker.publish("e1", {"x": 1}))
|
||||
|
||||
cid, queue = broker.subscribe()
|
||||
event = queue.get_nowait()
|
||||
assert event.event_type == "e1"
|
||||
async def _test():
|
||||
await broker.publish("e1", {"x": 1})
|
||||
cid, queue = broker.subscribe()
|
||||
event = queue.get_nowait()
|
||||
assert event.event_type == "e1"
|
||||
asyncio.run(_test())
|
||||
|
||||
def test_history_max(self):
|
||||
broker = SSEBroker()
|
||||
@@ -97,20 +101,23 @@ class TestSSEBroker:
|
||||
|
||||
def test_publish_sync(self):
|
||||
broker = SSEBroker()
|
||||
cid, queue = broker.subscribe()
|
||||
delivered = broker.publish_sync("tick", {"n": 1})
|
||||
assert delivered == 1
|
||||
event = queue.get_nowait()
|
||||
assert event.data["n"] == 1
|
||||
async def _test():
|
||||
cid, queue = broker.subscribe()
|
||||
delivered = broker.publish_sync("tick", {"n": 1})
|
||||
assert delivered == 1
|
||||
event = queue.get_nowait()
|
||||
assert event.data["n"] == 1
|
||||
asyncio.run(_test())
|
||||
|
||||
def test_multiple_subscribers(self):
|
||||
broker = SSEBroker()
|
||||
c1, q1 = broker.subscribe()
|
||||
c2, q2 = broker.subscribe()
|
||||
|
||||
asyncio.run(broker.publish("test", {"v": 42}))
|
||||
assert q1.get_nowait().data["v"] == 42
|
||||
assert q2.get_nowait().data["v"] == 42
|
||||
async def _test():
|
||||
c1, q1 = broker.subscribe()
|
||||
c2, q2 = broker.subscribe()
|
||||
await broker.publish("test", {"v": 42})
|
||||
assert q1.get_nowait().data["v"] == 42
|
||||
assert q2.get_nowait().data["v"] == 42
|
||||
asyncio.run(_test())
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user