disagreement/tests/test_wait_for.py
2025-06-09 22:25:14 -06:00

36 lines
948 B
Python

import asyncio
import pytest # pylint: disable=import-error
from disagreement.client import Client
@pytest.mark.asyncio
async def test_wait_for_resolves_on_event():
client = Client(token="t")
async def dispatch_event():
await asyncio.sleep(0.05)
data = {
"id": "42",
"channel_id": "c",
"author": {"id": "1", "username": "u", "discriminator": "0001"},
"content": "hello",
"timestamp": "t",
}
await client._event_dispatcher.dispatch("MESSAGE_CREATE", data)
asyncio.create_task(dispatch_event())
message = await client.wait_for(
"MESSAGE_CREATE", check=lambda m: m.id == "42", timeout=1
)
assert message.content == "hello"
@pytest.mark.asyncio
async def test_wait_for_timeout():
client = Client(token="t")
with pytest.raises(asyncio.TimeoutError):
await client.wait_for("MESSAGE_CREATE", timeout=0.1)