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'''\
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
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."
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
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()
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
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
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.'
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
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."
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.'
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!
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'''\