36 lines
948 B
Python
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)
|