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))
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_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"))
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_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"))
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"))
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"))
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("Администратор Ростелеком")))
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))
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()
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))
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)