def blocked_user(self):
     username, email, password = create_user()
     user = self.MySqlBuilder.add_user(username=username,
                                       email=email,
                                       password=password,
                                       access=0,
                                       active=0)
     yield username, password, email
     self.MySqlBuilder.del_user(username)
 def test_add_user(self):
     """
         Тестируется добавление валидного пользователя через api и проверка записи в базе данных.
         Шаги:
         1. Происходит авторизация в приложении.
         2. Отправляется запрос на добавление валидного пользователя.
         Ожидается появления записи в базе данных.
     """
     username, email, password = create_user()
     self.api_client.add_user(username, password, email)
     assert self.MySqlBuilder.get_user(username) is not None
 def test_add_user(self):
     """
         Тестируется добавление валидного пользователя через api.
         Шаги:
         1. Происходит авторизация в приложении.
         2. Отправляется запрос на добавление валидного пользователя.
         В ответе ожидается сообщение и статус-код 201.
     """
     username, email, password = create_user()
     assert self.api_client.add_user(username, password,
                                     email).status_code == 201
 def test_del_exist_user(self):
     """
         Тестируется удаления существующего валидного пользователя через api и проверка записи в базе данных.
         Шаги:
         1. Происходит авторизация в приложении.
         2. Отправляется запрос на удаления валидного пользователя.
         Ожидается удаления записи в базе данных.
     """
     username, email, password = create_user()
     self.MySqlBuilder.add_user(username, email, password, 1, 0)
     self.api_client.delete_user(username)
     assert self.MySqlBuilder.get_user(username) is None
 def test_negative_unblock_user(self):
     """
         Тестируется разблокировка незаблокированного пользователя через api и проверка записи в базе данных.
         Шаги:
         1. Происходит авторизация в приложении.
         2. Отправляется запрос на разблокировку не заблокированного существующего пользователя.
         Ожидается что поле доступа неизменится в базе данных.
     """
     username, email, password = create_user()
     self.MySqlBuilder.add_user(username, email, password, 1, 0)
     self.api_client.unblock_user(username)
     assert self.MySqlBuilder.get_user(username).access == 1
 def test_del_exist_user(self):
     """
         Тестируется удаления пользователя через api.
         Шаги:
         1. Происходит авторизация в приложении.
         2. Через базу данных добавляется пользователь.
         3. Отправляется запрос на удаления существующего валидного пользователя.
         В ответе ожидается сообщение и статус-код 204.
     """
     username, email, password = create_user()
     self.MySqlBuilder.add_user(username, email, password, 1, 0)
     assert self.api_client.delete_user(username).status_code == 204
 def test_negative_unblock_user(self):
     """
         Тестируется разблокировка незаблокированного пользователя через api.
         Шаги:
         1. Происходит авторизация в приложении.
         2. Через базу данных добавляется пользователь.
         3. Отправляется запрос на разблокировку валидного пользователя.
         В ответе ожидается сообщение и статус-код 304.
     """
     username, email, password = create_user()
     self.MySqlBuilder.add_user(username, email, password, 1, 0)
     assert self.api_client.unblock_user(username).status_code == 304
 def client(self):
     self.api_client = ApiClient(host='127.0.0.1', port=8080)
     self.MySqlClient = SQLOrmClient(user='******',
                                     password="******",
                                     host='127.0.0.1',
                                     port=3306,
                                     db_name='test')
     self.MySqlBuilder = MySqlOrmBuilder(self.MySqlClient)
     username, password, email = create_user()
     self.MySqlBuilder.add_user(username=username,
                                email=email,
                                password=password,
                                access=1,
                                active=0)
     self.api_client.auth(username, password)
     yield self.api_client
     self.MySqlBuilder.del_user(username)