feat(mma): Implement AsyncEventQueue in events.py
This commit is contained in:
47
tests/test_async_events.py
Normal file
47
tests/test_async_events.py
Normal file
@@ -0,0 +1,47 @@
|
||||
import asyncio
|
||||
import pytest
|
||||
from events import AsyncEventQueue
|
||||
|
||||
def test_async_event_queue_put_get():
|
||||
"""Verify that an event can be asynchronously put and retrieved from the queue."""
|
||||
async def run_test():
|
||||
queue = AsyncEventQueue()
|
||||
event_name = "test_event"
|
||||
payload = {"data": "hello"}
|
||||
|
||||
await queue.put(event_name, payload)
|
||||
ret_name, ret_payload = await queue.get()
|
||||
|
||||
assert ret_name == event_name
|
||||
assert ret_payload == payload
|
||||
|
||||
asyncio.run(run_test())
|
||||
|
||||
def test_async_event_queue_multiple():
|
||||
"""Verify that multiple events can be asynchronously put and retrieved in order."""
|
||||
async def run_test():
|
||||
queue = AsyncEventQueue()
|
||||
|
||||
await queue.put("event1", 1)
|
||||
await queue.put("event2", 2)
|
||||
|
||||
name1, val1 = await queue.get()
|
||||
name2, val2 = await queue.get()
|
||||
|
||||
assert name1 == "event1"
|
||||
assert val1 == 1
|
||||
assert name2 == "event2"
|
||||
assert val2 == 2
|
||||
|
||||
asyncio.run(run_test())
|
||||
|
||||
def test_async_event_queue_none_payload():
|
||||
"""Verify that an event with None payload works correctly."""
|
||||
async def run_test():
|
||||
queue = AsyncEventQueue()
|
||||
await queue.put("no_payload")
|
||||
name, payload = await queue.get()
|
||||
assert name == "no_payload"
|
||||
assert payload is None
|
||||
|
||||
asyncio.run(run_test())
|
||||
Reference in New Issue
Block a user