Пример #1
0
    async def test_process_new_event_cancel(self):
        chat = Chat(gen_message('/new_event'))
        message = MessageHandler(chat, self.TEST_USER)
        answer = 'Please, give your event a title.'
        assert await message.process_callback() == answer

        chat = Chat(gen_message('cancel'))
        message = MessageHandler(chat, self.TEST_USER)
        answer = '🚫 The process was canceled.'
        assert await message.process_callback() == answer
Пример #2
0
    async def test_default_handlers(self):
        wrong_start = MessageHandler(Chat(gen_message('start')),
                                     self.TEST_USER)
        wrong_show_events = MessageHandler(Chat(gen_message('show_events')),
                                           self.TEST_USER)
        message = MessageHandler(Chat(gen_message('hello')), self.TEST_USER)

        assert await wrong_start.process_callback() == "Unknown command."
        assert await wrong_show_events.process_callback() == "Unknown command."
        assert await message.process_callback() == "Unknown command."
Пример #3
0
    async def test_process_new_event_restart(self):
        chat = Chat(gen_message('/new_event'))
        message = MessageHandler(chat, self.TEST_USER)
        answer = 'Please, give your event a title.'
        assert await message.process_callback() == answer

        chat = Chat(gen_message('New Title'))
        message = MessageHandler(chat, self.TEST_USER)
        answer = 'Title:\nNew Title\n\n'
        answer += 'Add a description of the event.'
        assert await message.process_callback() == answer

        chat = Chat(gen_message('restart'))
        message = MessageHandler(chat, self.TEST_USER)
        answer = 'Please, give your event a title.'
        assert await message.process_callback() == answer
Пример #4
0
 async def test_chosen_day_handler(self, fake_user_events):
     chosen_date = today_date + timedelta(days=2)
     button = str(chosen_date.strftime(DATE_FORMAT))
     chat = Chat(gen_callback(button))
     message = MessageHandler(chat, fake_user_events)
     message.handlers[button] = message.chosen_day_handler
     assert await message.chosen_day_handler() == f'''\
Пример #5
0
async def bot_client(req: dict = Body(...), session=Depends(get_db)):
    chat = Chat(req)

    # Check if current chatter is registered to use the bot
    user = session.query(User).filter_by(telegram_id=chat.user_id).first()
    if user is None:
        return await reply_unknown_user(chat)

    message = MessageHandler(chat, user)
    return await message.process_callback()
Пример #6
0
    async def test_process_new_event(self):
        chat = Chat(gen_message('New Title'))
        message = MessageHandler(chat, self.TEST_USER)
        answer = 'Title:\nNew Title\n\n'
        answer += 'Add a description of the event.'
        assert await message.process_callback() == answer

        chat = Chat(gen_message('New Content'))
        message = MessageHandler(chat, self.TEST_USER)
        answer = 'Content:\nNew Content\n\n'
        answer += 'Where the event will be held?'
        assert await message.process_callback() == answer

        chat = Chat(gen_message('Universe'))
        message = MessageHandler(chat, self.TEST_USER)
        answer = 'Location:\nUniverse\n\n'
        answer += 'When does it start?'
        assert await message.process_callback() == answer

        chat = Chat(gen_message('Not valid start datetime input'))
        message = MessageHandler(chat, self.TEST_USER)
        answer = '❗️ Please, enter a valid date/time.'
        assert await message.process_callback() == answer

        chat = Chat(gen_message('today'))
        message = MessageHandler(chat, self.TEST_USER)
        today = datetime.today()
        answer = f'Starts on:\n{today.strftime("%d %b %Y %H:%M")}\n\n'
        answer += 'And when does it end?'
        assert await message.process_callback() == answer

        chat = Chat(gen_message('Not valid end datetime input'))
        message = MessageHandler(chat, self.TEST_USER)
        answer = '❗️ Please, enter a valid date/time.'
        assert await message.process_callback() == answer

        chat = Chat(gen_message('tomorrow'))
        message = MessageHandler(chat, self.TEST_USER)
        tomorrow = today + timedelta(days=1)
        answer = 'Title:\nNew Title\n\n'
        answer += 'Content:\nNew Content\n\n'
        answer += 'Location:\nUniverse\n\n'
        answer += f'Starts on:\n{today.strftime("%d %b %Y %H:%M")}\n\n'
        answer += f'Ends on:\n{tomorrow.strftime("%d %b %Y %H:%M")}'
        assert await message.process_callback() == answer

        chat = Chat(gen_message('create'))
        message = MessageHandler(chat, self.TEST_USER)
        answer = 'New event was successfully created 🎉'
        assert await message.process_callback() == answer
Пример #7
0
 def test_callback_message():
     chat = Chat(gen_callback('Callback Message'))
     assert chat.message == 'Callback Message'
     assert chat.user_id == 666666
     assert chat.first_name == 'Moshe'
Пример #8
0
 def test_private_message():
     chat = Chat(gen_message('Cool message'))
     assert chat.message == 'Cool message'
     assert chat.user_id == 666666
     assert chat.first_name == 'Moshe'
Пример #9
0
async def test_reply_unknown_user():
    chat = Chat(gen_message('/show_events'))
    answer = await reply_unknown_user(chat)
    assert answer == '''
Пример #10
0
 async def test_no_chosen_day_handler(self):
     chat = Chat(gen_callback('10 Feb 2021'))
     message = MessageHandler(chat, self.TEST_USER)
     message.handlers['10 Feb 2021'] = message.chosen_day_handler
     answer = "There're no events on February 10."
     assert await message.process_callback() == answer
Пример #11
0
 async def test_this_week_handler(self):
     chat = Chat(gen_callback('This week'))
     message = MessageHandler(chat, self.TEST_USER)
     assert await message.process_callback() == 'Choose a day.'
Пример #12
0
 async def test_today_handler(self, fake_user_events):
     chat = Chat(gen_callback('Today'))
     message = MessageHandler(chat, fake_user_events)
     answer = f"{today_date.strftime('%A, %B %d')}:\n"
     assert await message.process_callback() == answer
Пример #13
0
 async def test_no_today_events_handler(self):
     chat = Chat(gen_callback('Today'))
     message = MessageHandler(chat, self.TEST_USER)
     assert await message.process_callback() == "There're no events today."
Пример #14
0
 async def test_show_events_handler(self):
     chat = Chat(gen_message('/show_events'))
     message = MessageHandler(chat, self.TEST_USER)
     assert await message.process_callback() == 'Choose events day.'
Пример #15
0
    async def test_start_handlers(self):
        chat = Chat(gen_message('/start'))
        message = MessageHandler(chat, self.TEST_USER)

        assert '/start' in message.handlers
        assert await message.process_callback() == '''Hello, Moshe!
Пример #16
0
 async def test_today_handler(self, fake_user_events):
     chat = Chat(gen_callback('Today'))
     message = MessageHandler(chat, fake_user_events)
     assert await message.process_callback() == f'''\