def test_get_users_by_admin_hotel(self, use_session_admin_hotel):
        """ Тест получения списка пользователей администратором гостиницы """
        with allure.step('Запрос на получение списка пользователей'):
            r = Users().get_users()

        with allure.step('Проверка на успешный ответ от сервера'):
            assert_that(r.status_code, equal_to(200))

        with allure.step(
                'Проверка, что администратор гостиницы видит более 1 пользователя'
        ):
            assert len(r.json()) > 1

        with allure.step(
                'Проверка, что администратор гостиницы видит собственного пользователя'
        ):
            admin_is = False
            for user in r.json():
                if user['id'] == UAD.ADMIN_HOTEL_ID:
                    admin_is = True

                    # Проверка, что данные администратора гостиницы соответствуют действительным
                    assert_that(user['id'], equal_to(UAD.ADMIN_HOTEL_ID))
                    assert_that(user['mrf'], equal_to(DV.ACTUAL_MRF))
                    assert_that(user['client_id'], equal_to(DV.MAIN_HOTEL_ID))
                    assert_that(user['name'], is_not(""))
                    assert_that(user['email'], is_not(""))
                    assert "checkin_enabled" not in r.json()[0]

            assert_that(admin_is, is_(True))
Example #2
0
    def test_cant_enroll_in_unsupported_service(self):
        user = get_mock_user()

        service_info = dict(service_name="unsupported_service")
        with self.assertRaises(RuntimeError):
            Users.enroll_in_service(user['user'], service_info)

        remove_mock_user()
Example #3
0
    def test_delete_employee_no_role(self, delete_session):
        """ Тест попытки удалить сотрудника без авторизационного токена """
        with allure.step('Запрос на удаление сотрудника'):
            r = Users().delete_users_by_id(UAD.EMPLOYEE_ID)

        with allure.step('Проверки, что без авторизационного токена нельзя выполнить данный метод'):
            assert_that(r.status_code, equal_to(401))
            assert_that(r.json()["error_code"], equal_to(1))
            assert_that(r.json()["description"], equal_to("No 'session_id' header was provided"))
    def test_create_admin_mrf_by_admin_rt(self, use_session_admin_rt):
        """ Тест попытки создания администратора Ростелеком """
        with allure.step('Запрос на создание администратора Ростелеком'):
            r = Users(role_id=2).post_user()

        with allure.step('Проверки, что администратор Ростелеком не может создавать другого администратора Ростелеком'):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to("Forbidden"))
    def test_create_user_by_employee(self, use_session_employee):
        """ Тест попытки получить список пользователей сотрудником """
        with allure.step('Запрос на получение списка пользователей'):
            r = Users().get_users()

        with allure.step('Проверки, что сотрудник не может получить список пользователей'):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to("Forbidden"))
    def test_create_user_to_another_hotel_by_admin_hotel(self, use_session_admin_hotel):
        """ Тест попытки создания пользователя в другой гостинице администратором гостиницы """
        with allure.step('Запрос на создание пользователя в чужой гостинице'):
            r = Users(client_id=DV.SECOND_HOTEL_ID).post_user()

        with allure.step('Проверки, что администратор гостиницы не может создавать пользователей в чужой гостинице'):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to("Forbidden"))
Example #7
0
    def test_delete_admin_hotel_no_role(self, delete_session):
        """ Тест попытки удалить администратора гостиницы без авторизационного токена """
        with allure.step('Запрос на удаление администратора гостиницы'):
            r = Users().delete_users_by_id(UAD.ADMIN_HOTEL_ID)

        with allure.step('Проверки, что без авторизационного токена нельзя выполнить данный метод'):
            assert_that(r.status_code, equal_to(401))
            assert_that(r.json()["error_code"], equal_to(1))
            assert_that(r.json()["description"], equal_to("No 'session_id' header was provided"))
    def test_create_employee_by_employee(self, use_session_employee):
        """ Тест попытки создания сотрудника сотрудником """
        with allure.step('Запрос на создание пользователя с ролью сотрудника'):
            r = Users(role_id=0).post_user()

        with allure.step(
                'Проверки, что сотрудник не может создавать сотрудников'):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to("Forbidden"))
Example #9
0
    def test_get_null_user_by_employee(self, use_session_employee):
        """ Тест попытки получить данные несуществующего пользователя сотрудником """
        with allure.step(
                'Запрос на получение данных пользователя с несуществующим ID'):
            r = Users().get_users_by_id(None)

        with allure.step('Проверки на корректный ответ от сервера'):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to("Forbidden"))
    def _test_change_employee_by_employee(self, use_session_employee):
        """ Тест попытки изменить данные сотрудника сотрудником """
        with allure.step(
                'Запрос на изменение пользователя с ролью сотрудника'):
            r = Users(role_id=0).put_users_by_id(UAD.EMPLOYEE_ID)

        with allure.step(
                'Проверки, что сотрудник не может изменять сотрудников'):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to("Forbidden"))
Example #11
0
    def test_get_employee_by_employee(self, use_session_employee):
        """ Тест попытки получить данные сотрудника сотрудником """
        with allure.step('Запрос на получение данных сотрудника'):
            r = Users().get_users_by_id(UAD.EMPLOYEE_ID)

        with allure.step(
                'Проверки, что сотрудник не может просмотреть данные сотрудника'
        ):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to("Forbidden"))
    def test_put_admin_rt_no_role(self, delete_session):
        """ Тест попытки изменить данные администратора Ростелеком без авторизационного токена """
        with allure.step('Запрос на изменение администратора Ростелеком'):
            r = Users().put_users_by_id(UAD.EMPLOYEE_ID)

        with allure.step(
                'Проверки, что без авторизационного токена нельзя выполнить данный метод'
        ):
            assert_that(r.status_code, equal_to(401))
            assert_that(r.json()["error_code"], equal_to(1))
            assert_that(r.json()["description"],
                        equal_to("No 'session_id' header was provided"))
    def test_create_employee_no_role(self, delete_session):
        """ Тест попытки создания сотрудника без авторизационного токена """
        with allure.step('Запрос на создание сотрудника'):
            r = Users(role_id=0).post_user()

        with allure.step(
                'Проверки, что без авторизационного токена нельзя выполнить данный метод'
        ):
            assert_that(r.status_code, equal_to(401))
            assert_that(r.json()["error_code"], equal_to(1))
            assert_that(r.json()["description"],
                        equal_to("No 'session_id' header was provided"))
    def test_create_admin_hotel_no_role(self, delete_session):
        """ Тест попытки создания администратора гостиницы без авторизационного токена """
        with allure.step('Запрос на создание администратора гостиницы'):
            r = Users(role_id=1).post_user()

        with allure.step(
                'Проверки, что без авторизационного токена нельзя выполнить данный метод'
        ):
            assert_that(r.status_code, equal_to(401))
            assert_that(r.json()["error_code"], equal_to(1))
            assert_that(r.json()["description"],
                        equal_to("No 'session_id' header was provided"))
    def test_create_user_no_role(self, delete_session):
        """ Тест попытки получить список пользователей без авторизационного токена """
        with allure.step('Запрос на получение списка пользователей'):
            r = Users().get_users()

        with allure.step(
                'Проверки, что без авторизационного токена нельзя выполнить данный метод'
        ):
            assert_that(r.status_code, equal_to(401))
            assert_that(r.json()["error_code"], equal_to(1))
            assert_that(r.json()["description"],
                        equal_to("No 'session_id' header was provided"))
Example #16
0
    def test_can_delete_user(self):
        """Should be able to remove a user"""
        username = "******"
        email = "*****@*****.**"
        password = "******"

        Users.register_user(username, email, password)
        Users.delete_user(username)

        # Make sure the user does not exist anymore
        user = Users.find_user(username)
        self.assertIsNone(user)
Example #17
0
    def test_get_admin_rt_by_employee(self, use_session_employee):
        """ Тест попытки получить данные администратора Ростелеком сотрудником """
        with allure.step(
                'Запрос на получение данных администратора Ростелеком'):
            r = Users().get_users_by_id(UAD.ADMIN_MRF_ID)

        with allure.step(
                'Проверки, что сотрудник не может просмотреть данные администратора Ростелеком'
        ):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to("Forbidden"))
    def test_get_employee_in_another_hotel_by_admin_hotel(
            self, use_session_admin_hotel):
        """ Тест попытки получить данные сотрудника не своей гостиницы администратором гостиницы """
        with allure.step(
                'Запрос на получение данных сотрудника чужой гостиницы'):
            r = Users().get_users_by_id(UAD.SECOND_EMPLOYEE_ID)

        with allure.step(
                'Проверки, что администратор гостиницы не может получить данные пользователей чужой гостиницы'
        ):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to("Forbidden"))
    def test_create_admin_hotel_by_employee(self, use_session_employee):
        """ Тест попытки создания администратора гостиницы сотрудником """
        with allure.step(
                'Запрос на создание пользователя с ролью администратора гостиницы'
        ):
            r = Users(role_id=1).post_user()

        with allure.step(
                'Проверки, что сотрудник не может создавать администраторов гостиницы'
        ):
            assert_that(r.status_code, equal_to(403))
            assert_that(r.json()["error_code"], equal_to(403))
            assert_that(r.json()["description"], equal_to("Forbidden"))
Example #20
0
    def test_can_register_user(self):
        """Should be able to register a user"""
        username = "******"
        email = "*****@*****.**"
        password = "******"

        Users.register_user(username, email, password)

        # Make sure the user now exists in the system
        user = Users.find_user(username)
        self.assertIsNotNone(user)

        # Clean up
        Users.delete_user(username)
Example #21
0
    def test_delete_employee_by_admin_hotel(self, use_session_admin_hotel,
                                            create_user_employee, check_user):
        """ Тест удаления сотрудника администратором гостиницы """
        with allure.step('Запрос на удаление администратора гостиницы'):
            r = Users().delete_users_by_id(create_user_employee)

        with allure.step('Проверка на успешный ответ от сервера'):
            assert_that(r.status_code, equal_to(200))
            assert_that(r.json()["success"], is_(True))

        with allure.step(
                'Проверка, что удаленный пользователь не существует (запрос пользователя по id)'
        ):
            user_exists = check_user(create_user_employee)
            assert_that(user_exists, is_(False))
Example #22
0
    def test_get_null_user_by_admin_rt(self, use_session_admin_rt):
        """ Тест попытки получить данные несуществующего пользователя """
        with allure.step(
                'Запрос на получение данных несуществующего пользователя'):
            r = Users().get_users_by_id(None)

        with allure.step('Проверка на корректный ответ от сервера'):
            assert_that(r.status_code, equal_to(400))
    def test_get_user_me_by_admin_hotel(self, use_session_admin_hotel):
        """ Тест попытки получить информацию о собственном пользователе администратором гостиницы """
        with allure.step('Запрос на получение данных о собственном пользователе'):
            r = Users().get_users_me()

        with allure.step('Проверки, что администратор гостиницы может получить информацию о себе'):
            assert_that(r.status_code, equal_to(200))
            assert_that(r.json()["id"], equal_to(UAD.ADMIN_HOTEL_ID))
            assert_that(r.json()["mrf"], equal_to(DV.ACTUAL_MRF))
            assert_that(r.json()["role_id"], equal_to(1))
            assert_that(r.json()["client_id"], equal_to(DV.MAIN_HOTEL_ID))
            assert_that(r.json()["name"], is_not(""))
            assert_that(r.json()["email"], is_not(""))
            assert_that(r.json()["checkin_enabled"], is_(True))
Example #24
0
    def test_can_unenroll_user_in_service(self):
        user = get_mock_user()

        service_info = dict(service_name="vanguard")
        service_info["username"] = "******"
        service_info["password"] = "******"
        security_questions = {
            "What was your first pet's name?": "poopie",
            "What is the name of your elementary school": "chewbaca"
        }
        service_info["security_questions"] = security_questions

        Users.enroll_in_service(user['user'], service_info)
        Users.unenroll_from_service(user['user'], "vanguard")

        user = Users.find_user(user['user'])
        self.assertIsNone(user.get('services', {}).get("vanguard"))

        remove_mock_user()
Example #25
0
    def test_get_employee_by_admin_rt(self, use_session_admin_rt):
        """ Тест получения данных сотрудника """
        with allure.step('Запрос на получение данных сотрудника'):
            r = Users().get_users_by_id(UAD.EMPLOYEE_ID)

        with allure.step(
                'Проверки, что администратор Ростелеком может просмотреть информацию о сотруднике'
        ):
            assert_that(r.status_code, equal_to(200))
            assert_that(r.json()["id"], equal_to(UAD.EMPLOYEE_ID))
            assert_that(r.json()["mrf"], equal_to(DV.ACTUAL_MRF))
            assert_that(r.json()["role_id"], equal_to(0))
            assert_that(r.json()["client_id"], equal_to(DV.MAIN_HOTEL_ID))
            assert_that(r.json()["name"], is_not(""))
            assert_that(r.json()["email"], is_not(""))
            assert "checkin_enabled" not in r.json()
Example #26
0
    def test_delete_employee_by_employee(self, create_user_employee, use_session_employee, check_user):
        """ Тест попытки удаления сотрудника сотрудником """
        with allure.step('Запрос на удаление сотрудника'):
            r = Users().delete_users_by_id(create_user_employee)

        with allure.step('Проверка, что сотрудник не может удалять сотрудника'):
            assert_that(r.status_code, equal_to(403))

        with allure.step('Проверка, что пользователь не удалился (запрос пользователя по id)'):
            user_exists = check_user(create_user_employee)
            assert_that(user_exists, is_(True))
Example #27
0
    def test_delete_admin_hotel_by_employee(self, create_user_admin_hotel, use_session_employee, check_user):
        """ Тест попытки удаления администратора гостиницы сотрудником """
        with allure.step('Запрос на удаление администратора гостиницы'):
            r = Users().delete_users_by_id(create_user_admin_hotel)

        with allure.step('Проверка, что сотрудник не может удалять администратора гостиницы'):
            assert_that(r.status_code, equal_to(403))

        with allure.step('Проверка, что пользователь не удалился (запрос пользователя по id)'):
            user_exists = check_user(create_user_admin_hotel)
            assert_that(user_exists, is_(True))
    def test_get_admin_hotel_by_admin_hotel(self, use_session_admin_hotel):
        """ Тест получения данных администратора гостиницы администратором гостиницы """
        with allure.step(
                'Запрос на получение данных администратора гостиницы'):
            r = Users().get_users_by_id(UAD.ADMIN_HOTEL_ID)

        with allure.step(
                'Проверки, что администратор гостиницы может просмотреть информацию об администраторе '
                'гостиницы'):
            assert_that(r.status_code, equal_to(200))
            assert_that(r.json()["id"], equal_to(UAD.ADMIN_HOTEL_ID))
            assert_that(r.json()["mrf"], equal_to(DV.ACTUAL_MRF))
            assert_that(r.json()["role_id"], equal_to(1))
            assert_that(r.json()["client_id"], equal_to(DV.MAIN_HOTEL_ID))
            assert_that(r.json()["name"], is_not(""))
            assert_that(r.json()["email"], is_not(""))
            assert "checkin_enabled" not in r.json()
Example #29
0
    def test_get_admin_mrf_by_admin_rt(self, use_session_admin_rt):
        """ Тест получения данных администратора Ростелеком администратором Ростелеком """
        with allure.step(
                'Запрос на получение данных администратора Ростелеком'):
            r = Users().get_users_by_id(UAD.ADMIN_MRF_ID)

        with allure.step(
                'Проверки, что администратор Ростелеком может просмотреть информацию об администраторе '
                'Ростелеком'):
            assert_that(r.status_code, equal_to(200))
            assert_that(r.json()["id"], equal_to(UAD.ADMIN_MRF_ID))
            assert_that(r.json()["mrf"], equal_to(DV.ACTUAL_MRF))
            assert_that(r.json()["role_id"], equal_to(2))
            assert_that(r.json()["client_id"], equal_to(""))
            assert_that(r.json()["name"], is_not(""))
            assert_that(r.json()["email"], is_not(""))
            assert "checkin_enabled" not in r.json()
    def test_get_user_me_by_employee(self, use_session_employee):
        """ Тест получения информацию о собственном пользователе сотрудником """
        with allure.step(
                'Запрос на получение информации о собственном пользователе'):
            r = Users().get_users_me()

        with allure.step(
                'Проверка на успешный ответ от сервера и верные данные своего пользователя в теле ответа'
        ):
            assert_that(r.status_code, equal_to(200))
            assert_that(r.json()["id"], equal_to(UAD.EMPLOYEE_ID))
            assert_that(r.json()["mrf"], equal_to(DV.ACTUAL_MRF))
            assert_that(r.json()["role_id"], equal_to(0))
            assert_that(r.json()["client_id"], equal_to(DV.MAIN_HOTEL_ID))
            assert_that(r.json()["name"], is_not(""))
            assert_that(r.json()["email"], is_not(""))
            assert_that(r.json()["checkin_enabled"], is_(True))
Example #31
0
    def test_cant_register_user_twice(self):
        """No duplicate usernames or emails"""
        username = "******"
        email = "*****@*****.**"
        password = "******"

        Users.register_user(username, email, password)
        with self.assertRaises(RuntimeError):
            Users.register_user(username, email, password)

        # Clean up
        Users.delete_user(username)
Example #32
0
def get_mock_user():
    username = "******"
    email = "*****@*****.**"
    password = "******"
    Users.register_user(username, email, password)
    return Users.find_user(username)
Example #33
0
 def test_can_hash_and_verify_password(self):
     """Hash a password, then verify it"""
     h = Users.hash_password("fake_password")
     self.assertFalse(Users.verify_password("even_faker_password", h))
     self.assertTrue(Users.verify_password("fake_password", h))
Example #34
0
 def test_gen_api_key(self):
     """Just check that the generated API key has 64 alphanumeric chars"""
     api_key = Users.gen_api_key()
     self.assertEqual(len(api_key), 64)
     self.assertTrue(api_key.isalnum())
Example #35
0
def remove_mock_user():
    username = "******"
    Users.delete_user(username)