Quickstart
The most typical usage is in tests, when you have a scenario that requires waiting for something to happen:
from busypie import wait
def test_event_should_be_dispatched():
dispatcher.dispatch(event)
wait().until(event_dispatched)
Using it inside an async function is almost the same:
from busypie import wait
async def create_user():
dispatch_user_create_command()
await wait().until_async(lambda: user_created_dispatched)
You can also wait while a condition remains true:
from busypie import wait, MINUTE
def test_event_should_be_dispatched():
dispatcher.dispatch(event)
wait().at_most(2 * MINUTE).during(event_not_dispatched)
As with until, async support is available for during as well:
from busypie import wait
async def create_user():
dispatch_user_create_command()
await wait().during_async(lambda: not app.has_user(user))