Пример #1
0
def create_presence(account_name="Guest"):
    """
    Сформировать ​​presence-сообщение
    :param account_name: Имя пользователя
    :return: Словарь сообщения
    """
    # Если имя не строка
    if not isinstance(account_name, str):
        # Генерируем ошибку передан неверный тип
        raise TypeError
    # Если длина имени пользователя больше 25 символов
    if len(account_name) > 25:
        # генерируем нашу ошибку имя пользователя слишком длинное
        raise UsernameToLongError(account_name)
    # если все хорошо, то
    # формируем словарь сообщения
    message = {
        ACTION: PRESENCE,
        TIME: time.time(),
        USER: {
            ACCOUNT_NAME: account_name
        }
    }
    # возвращаем сообщение в виде словаря
    return message
Пример #2
0
    def create_presence(self):
        """
        Формируем ​​presence-сообщение
        :param account_name: Имя пользователя
        :return: Словарь сообщения
        tests: pytest
        """

        # Если имя не строка
        if not isinstance(self.login, str):
            logger.error(
                f'Введённый account_name: { self.login } - не является строкой.'
            )
            raise TypeError
        # Если длина имени пользователя больше 20 символов
        if len(self.login) >= 20:
            logger.error(
                f'Длина account_name: { self.login } - превышает разрешённую. Максимальная длина имени 20 символов.'
            )
            raise UsernameToLongError(self.login)

        # Формируем словарь сообщения
        message = {
            ACTION: PRESENCE,
            TIME: time.time(),
            USER: {
                LOGIN: self.login,
                PASSWORD: self.password
            }
        }
        logger.debug('Формируем presence-message.')

        return message
Пример #3
0
 def create_presence(self):
     # Если имя не строка
     if not isinstance(self.login, str):
         # Генерируем ошибку передан неверный тип
         raise TypeError
     # Если длина имени пользователя больше 25 символов
     if len(self.login) > 25:
         # генерируем нашу ошибку имя пользователя слишком длинное
         raise UsernameToLongError(self.login)
     # формируем словарь сообщения
     message = {
         ACTION: PRESENCE,
         TIME: time.time(),
         USER: {
             ACCOUNT_NAME: self.login,
             'status': 'Yep, I am here!'
         }
     }
     print(message)
     return message
Пример #4
0
 def create_add_contact(self, nickname):
     # Если имя не строка
     if not isinstance(nickname, str):
         # Генерируем ошибку передан неверный тип
         raise TypeError
     # Если длина имени пользователя больше 25 символов
     if len(nickname) > 25:
         # генерируем нашу ошибку имя пользователя слишком длинное
         raise UsernameToLongError(nickname)
     # формируем словарь сообщения
     try:
         message = {
             ACTION: 'add_contact',
             TIME: time.time(),
             ACCOUNT_NAME: self.login,
             USER_ID: nickname
         }
         send_message(self.sock, message)
         rsp = self.request_queue.get()
         print(rsp)
         return rsp
     except Exception as e:
         print(e)