import pytest from zvk.event.consumer import on_startup from zvk.event.event import Event from zvk.plugins.vk.event_saver import VKEvent from zvk.plugins.vk.message_parser import Message from zvk.util.db import Database from zvk.plugins.vk.event_type import VKEventType @on_startup async def vk_event_emitter(): yield Event(VKEventType.UNREAD_COUNTER_UPDATE, vk_event_args=[3, 0]) yield Event(VKEventType.MESSAGE_NEW, vk_event_args=[528220, 33, 50951365, 1539933254, 'Я в автобусе щас ваще', {'title': ' ... '}, {}, 0]) yield Event(VKEventType.MESSAGE_NEW, vk_event_args=[528392, 532481, 2000000049, 1539947094, 'Где философия?', {'from': '363656437'}, {}, 0]) yield Event(VKEventType.MESSAGE_NEW, vk_event_args=[528397, 33, 173489181, 1539955700, 'Я литералли ходил на перекур с преподом', {'fwd_all_count': '0', 'fwd_count': '1', 'title': ' ... '}, {'fwd': '0_0'}, 0]) @pytest.mark.asyncio async def test(db: Database, bot, api): bot.event_queue.register_consumer(vk_event_emitter) assert await bot.run() with db as session: assert session.query(VKEvent).count() == 4 assert session.query(Message).count() == 3