示例#1
0
    def test_get_roles_no_role(self, delete_session):
        """ Тест метода просмотра всех ролей, без авторизационного токена """
        with allure.step('Запрос на просмотр всех ролей'):
            r = Users().get_roles()

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

        with allure.step('Проверка, что ролей - три'):
            assert_that(r.json(), has_length(3))

        with allure.step(
                'Проверка, что без авторизационного токена можно увидеть все три роли'
        ):
            assert_that(
                r.json()[0],
                has_entries("id", equal_to(0), "name", equal_to("Сотрудник")))
            assert_that(
                r.json()[1],
                has_entries("id", equal_to(1), "name",
                            equal_to("Администратор гостиницы")))
            assert_that(
                r.json()[2],
                has_entries("id", equal_to(2), "name",
                            equal_to("Администратор Ростелеком")))
    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))
示例#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"))
示例#5
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_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"))
    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"))
示例#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"))
示例#10
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_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"))
    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_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"))
示例#15
0
    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"))
示例#16
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"))
示例#19
0
    def test_get_roles_by_employee(self, use_session_employee):
        """ Тест метода просмотра всех ролей сотрудником """
        with allure.step('Запрос на просмотр всех ролей'):
            r = Users().get_roles()

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

        with allure.step('Проверка, что ролей - три'):
            assert_that(r.json(), has_length(3))

        with allure.step('Проверка, что сотрудник видит все три роли'):
            assert_that(
                r.json()[0],
                has_entries("id", equal_to(0), "name", equal_to("Сотрудник")))
            assert_that(
                r.json()[1],
                has_entries("id", equal_to(1), "name",
                            equal_to("Администратор гостиницы")))
            assert_that(
                r.json()[2],
                has_entries("id", equal_to(2), "name",
                            equal_to("Администратор Ростелеком")))
示例#20
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))
    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))
示例#22
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()
    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()
示例#24
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))
示例#26
0
    def test_get_employee_in_another_hotel_by_admin_rt(self,
                                                       use_session_admin_rt):
        """ Тест получения данных сотрудника другой гостиницы администратором Ростелеком """
        with allure.step(
                'Запрос на получение данных сотрудника другой гостиницы'):
            r = Users().get_users_by_id(UAD.SECOND_EMPLOYEE_ID)

        with allure.step(
                'Проверки, что администратор Ростелеком может посмотреть информацию пользователях любой '
                'гостиницы своего МРФ'):
            assert_that(r.status_code, equal_to(200))
            assert_that(r.json()["id"], equal_to(UAD.SECOND_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.SECOND_HOTEL_ID))
            assert_that(r.json()["name"], is_not(""))
            assert_that(r.json()["email"], is_not(""))
            assert "checkin_enabled" not in r.json()
    def test_create_employee_by_admin_rt(self, use_session_admin_rt, check_user):
        """ Тест создания сотрудника """
        with allure.step('Запрос на создание сотрудника'):
            r = Users(role_id=0).post_user()

        with allure.step('Проверки, что администратор Ростелеком может создавать сотрудника'):
            assert_that(r.status_code, equal_to(200))
            assert_that(r.json()["id"], greater_than(0))
            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()

        with allure.step('Проверка, что пользователь создан (запрос пользователя по id)'):
            user_id = r.json()["id"]
            user_exists = check_user(user_id)
            assert_that(user_exists, is_(True))
            time.sleep(1)

        with allure.step('Удаление созданного пользователя, чтобы не засорять БД'):
            Users().delete_users_by_id(user_id)