def process_answer(update, context): if update.callback_query.message.message_id != context.user_data.get( 'active_test_message_id'): update.callback_query.answer( 'Опрос неактивен т.к. был создан более новый') return context.user_data['answers'].append( int(update.callback_query.data.split('_')[-1])) if len(context.user_data['answers']) < 25: update.callback_query.edit_message_text( **TestMessage(len(context.user_data['answers']))) else: result = sum(context.user_data['answers']) status = None if 0 <= result <= 5: status = 'депрессия отсутствует' if 6 <= result <= 10: status = 'нормальное, но несчастливое состояние' if 11 <= result <= 25: status = 'слабо выраженная депрессия' if 26 <= result <= 50: status = 'умеренная депрессия' if 51 <= result <= 75: status = 'сильно выраженная депрессия' if 76 <= result <= 100: status = 'крайняя степень депрессии' update.callback_query.edit_message_text(**ResultMessage(result)) TestResult.create(value=result, user_id=update.effective_user.id, data=context.user_data['answers']) Base.session.commit()