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_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()
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"))
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"))
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"))
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"))
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)
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_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)
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_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))
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()
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_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))
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()
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_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)
def get_mock_user(): username = "******" email = "*****@*****.**" password = "******" Users.register_user(username, email, password) return Users.find_user(username)
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))
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())
def remove_mock_user(): username = "******" Users.delete_user(username)