async def test_can_subscribe_to_specific_event_types_async(): async def fun(msg): received = msg assert received == 'hello' event_stream = EventStream() event_stream.subscribe(fun, str, Dispatchers().default_dispatcher) await event_stream.publish('hello')
async def test_can_subscribe_to_specific_event_types(): received_events = [] async def fun(msg): received_events.append(msg) event_stream = EventStream() event_stream.subscribe(fun, str) await event_stream.publish('hello') assert received_events[0] == 'hello'
async def test_only_receive_subscribed_to_event_types(): received_events = [] async def fun(msg): received_events.append(msg) event_stream = EventStream() event_stream.subscribe(fun, int) await event_stream.publish('not an int') assert len(received_events) == 0
async def test_can_unsubscribe_from_events(): received_events = [] async def fun(msg): received_events.append(msg) event_stream = EventStream() subscription = event_stream.subscribe(fun, str) await event_stream.publish('first message') subscription.unsubscribe() await event_stream.publish('second message') assert len(received_events) == 1
async def test_can_subscribe_to_all_event_types(): received_events = [] async def fun(msg): received_events.append(msg) event_stream = EventStream() event_stream.subscribe(fun) await event_stream.publish('hello') assert received_events[0] == 'hello' await event_stream.publish(1) assert received_events[1] == 1 await event_stream.publish(True) assert received_events[2] is True