git reimport

This commit is contained in:
2019-03-15 15:02:19 +04:00
commit 742797309a
90 changed files with 4411 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
import asyncio
import pytest
from zvk.bot.event_type import BotEventType
from zvk.event.consumer import event_consumer
from zvk.event.event import Event
from zvk.event.periodic import periodic
from zvk.event.queue import EventQueue
@periodic(period_secs=0.1)
async def loop1():
yield Event('inc')
@periodic(period_secs=0.1)
async def loop2():
yield Event('inc')
@event_consumer(consumes=['inc'])
async def inc(counter):
counter[0] += 1
@pytest.mark.asyncio
async def test_event_cancellation():
event_queue = EventQueue()
counter = [0]
event_queue.register_consumer(loop1)
event_queue.register_consumer(loop2)
event_queue.register_consumer(inc)
starting_events = [Event(BotEventType.STARTUP, counter=counter)]
queue_task = asyncio.create_task(event_queue.run(starting_events))
await asyncio.sleep(0.15)
assert counter[0] == 4
event_queue.deregister_consumer(loop2)
await asyncio.sleep(0.2)
assert counter[0] == 6
event_queue.omae_wa_mou_shindeiru()
await queue_task
assert counter[0] == 6