def test_change_chat_name(self): new_chat_name = CHAT_NAME * 2 chat_id = Chat.create(CHAT_NAME, CHAT_CODE, CODE_TYPE, CHAT_ACCESS_KEY) chat = Chat.get(chat_id) chat.set_name(new_chat_name) chat = Chat.get(chat_id) self.assertEqual(chat.name, MarkdownMixin.decode(new_chat_name))
def chat_page(chat_id): """Данная функция возвращает пользователю страницу чата по номеру :param chat_id: Номер чата :return: Страница чата """ chat_create_form = CreateChatForm() login_form = LoginForm() chat = Chat.get(chat_id) if not chat: return redirect('/') auth_form = AuthChatForm() if auth_form.validate_on_submit(): access_key = auth_form.password.data User.set_access_key(chat_id, access_key) return render_template( 'chat.html', chat_id=chat.id, socket_mode=(app.config['SOCKET_MODE'] == 'True'), chat_info=chat.get_info(), login=User.get_login(), login_form=login_form, chat_create_form=chat_create_form, have_access=chat.is_access_key_valid(User.get_access_key(chat_id)), auth_form=auth_form, allowed_ex=",".join( ['.' + i for i in app.config["ALLOWED_EXTENSIONS"]]), allowed_languages=app.config["ALLOWED_LANGUAGES"])
def test_get_last_messages(self): chat = Chat.get(self.chat_id) old_message = Message.send(self.chat_id, MESSAGE, MESSAGE_TYPE) new_message = Message.send(self.chat_id, MESSAGE, MESSAGE_TYPE) got_last_messages = chat.get_last_messages(old_message.id) self.assertEqual(len(got_last_messages), 1) self.assertEqual(got_last_messages[0].get('id'), new_message.id)
def test_get_all_messages(self): second_message = Message.send(self.chat_id, MESSAGE, MESSAGE_TYPE) third_message = Message.send(self.chat_id, MESSAGE, MESSAGE_TYPE) chat = Chat.get(self.chat_id) got_messages = chat.get_last_messages() self.assertEqual(len(got_messages), 3) self.assertEqual(got_messages[1].get('id'), second_message.id) self.assertEqual(got_messages[2].get('id'), third_message.id)
def set_chat_name(): """Изменение названия чата :return: успешность сохранения названия """ chat_name_form = ChatNameForm() chat = Chat.get(chat_name_form.chat.data) chat_name = chat.set_name(chat_name_form.name.data) return dumps({"success": True, "error": "", "data": chat_name})
def test_set_chat_name_return(self): new_chat_name = CHAT_NAME * 2 chat_id = Chat.create(CHAT_NAME, CHAT_CODE, CODE_TYPE, CHAT_ACCESS_KEY) chat = Chat.get(chat_id) set_chat_name_return = chat.set_name(new_chat_name) self.assertIsInstance(set_chat_name_return, dict) self.assertEqual(set_chat_name_return.get('original', None), chat.name) self.assertNotEqual(set_chat_name_return.get('plain', None), None) self.assertNotEqual(set_chat_name_return.get('escaped', None), None)
def get_messages(): """Запрос получения новых сообщений в чате :return: Принято ли сообщение """ get_messages_form = GetMessagesForm(request.args) chat_id = get_messages_form.chat.data last_message_id = get_messages_form.last_message_id.data chat = Chat.get(chat_id) return dumps(chat.get_last_messages(last_message_id))
def access_check(*args, **kwargs): """Функция возвращает ошибку, если ключ доступа к чату невалиден""" if request.method == "POST": chat_form = ChatForm() else: chat_form = ChatForm(request.args) chat_id = chat_form.chat.data chat = Chat.get(chat_id) if chat.is_access_key_valid(User.get_access_key(chat_id)): return func(*args, **kwargs) return dumps({"success": False, "error": "Access error"}), 403
def chat_required(form, field): """Проверка чата на существование""" if not Chat.get(field.data): raise ValidationError
def test_chat_has_code(self): chat = Chat.get(self.chat_id) code_id = Code.send(self.chat_id, CODE, PARENT_CODE_ID, COMMIT_MESSAGE) - 1 self.assertTrue(chat.has_code(str(code_id))) self.assertFalse(chat.has_code(str(code_id + 1)))
def test_chat_has_message(self): chat = Chat.get(self.chat_id) message_id = Message.send(self.chat_id, MESSAGE, 'usr').id - 1 self.assertTrue(chat.has_message(str(message_id))) self.assertFalse(chat.has_message(str(message_id + 1)))
def test_create_chat(self): chat = Chat.get(self.chat_id) chat_info = chat.get_info() self.assertEquals(chat_info.get('name'), MarkdownMixin.decode(CHAT_NAME)) self.assertEquals(chat_info.get('code_type'), CODE_TYPE)
def test_is_access_key_valid(self): chat_id = Chat.create(CHAT_NAME, CHAT_CODE, CODE_TYPE, CHAT_ACCESS_KEY) chat = Chat.get(chat_id) self.assertTrue(chat.is_access_key_valid(CHAT_ACCESS_KEY)) self.assertFalse(chat.is_access_key_valid(CHAT_INCORRECT_ACCESS_KEY))