def test_create_user_by_role(self, test_role="seller", role='admin'): """ Создание пользователя через бэк и авторизация на фронте (админ/модер/покупатель/продавец) :return: """ test_data = self.generate_test_data # login self.back_auth(role, self.obj_login, self.obj_pass, self.obj_submit, databases.db1) # go to users self.check_navigate(self.driver, self.NAVIGATE_MENU_ITEM["Учетные записи"]) # get and click button create user btn_create = self.get_element_navigate(self.driver, self.click_back_users.BTN_CREATE_USER) self.click_button(btn_create) # check form create user fields = self.get_fields_user_create_form(self.driver) self.check_form_create_user(self.driver) # set fields and submit create user self.set_input_fields_user_create_form(fields, test_data) obj_role = self.get_role(self.driver, self.CREATE_USER_ROLE[test_role]["name"]) self.click_button(obj_role) self.click_button(fields['save']) # check user in db criteria = "display_name='%s' and gender='%s' and email='%s' and city='%s' and phone='%s'" % \ (test_data['name'], test_data['gender'], test_data['email'], test_data['city'], test_data['phone']) user = databases.db1.accounting.get_user_by_criteria("ENABLED", criteria)[0] # check success create in back self.check_success_create(self.driver, user["id"]) # go auth in front self.get_page(self.driver, self.path_auth.PATH_AUTH) #self.click_to_phone(self.driver) obj_phone, obj_password, obj_submit_button = self.get_data_authorization(self.driver) # Вводим данные на авторизацию self.send_phone(phone_object=obj_phone, phone_number=user["phone"]) self.send_password(password_object=obj_password, password_number=test_data['passwd']) # Нажатие на кнопку авторизации self.element_click(self.driver, obj_submit_button, change_page_url=True) # Переход на страницу "Настройки пользователя" HPSCM.go_profile_settings_page(self.driver) # Получаем инфо из базы о пользователе self.user_info = databases.db1.accounting.get_all_user_info_by_id(user_id=user["id"])[0] # Получаем список ролей пользователя self.user_roles = databases.db1.accounting.get_user_role_by_id(user_id=user["id"]) role_list = [str(role["id"]) for role in self.user_roles] role_str = ','.join(role_list) self.assertIn(role_str, self.CREATE_USER_ROLE[test_role]["id"], "Роли не совпадают") self.check_common_info_all_roles(driver=self.driver, user_info=self.user_info, user_roles=self.user_roles)
def test_edit_user(self, role='admin', param='ID'): """ Редактирование пользователя через бэк и авторизация на фронте (смена пароля и имени под ролью админ/модер) :return: """ test_data = self.generate_test_data_edit # login self.back_auth(role, self.obj_login, self.obj_pass, self.obj_submit, databases.db1) # go to users self.check_navigate(self.driver, self.NAVIGATE_MENU_ITEM["Учетные записи"]) input_field = self.get_input_field_find(self.driver) select_params_name_phone = self.get_select_param(self.driver, param) input_field.send_keys(self.user["id"]) self.click_button(select_params_name_phone) btn_find = self.get_element_navigate(self.driver, self.click_back_users.BTN_FIND) self.click_button(btn_find) btn_edit = self.get_element_navigate(self.driver, self.click_back_users.BTN_EDIT % self.user["id"]) self.click_button(btn_edit) fields = self.get_fields_user_edit_form(self.driver) self.clear_input_row(self.driver, fields["name"]) self.set_input_fields_user_edit_form(fields, test_data) self.click_button(fields["save"]) self.check_success_edit(self.driver) # go auth in front self.go_to_main_page(self.driver, env_base_url=self.ENV_BASE_URL) self.get_page(self.driver, self.path_auth.PATH_AUTH) #self.click_to_phone(self.driver) obj_phone, obj_password, obj_submit_button = self.get_data_authorization(self.driver) # Вводим данные на авторизацию self.send_phone(phone_object=obj_phone, phone_number=self.user["phone"]) self.send_password(password_object=obj_password, password_number=test_data['passwd']) # Нажатие на кнопку авторизации self.element_click(self.driver, obj_submit_button, change_page_url=True) self.check_profile_widget(self.driver) # Переход на страницу "Настройки пользователя" HPSCM.go_profile_settings_page(self.driver) # Получаем инфо из базы о пользователе self.user_info = databases.db1.accounting.get_all_user_info_by_id(user_id=self.user["id"])[0] # Получаем список ролей пользователя self.user_roles_2 = databases.db1.accounting.get_user_role_by_id(user_id=self.user["id"]) role_str_2 = "" for role in self.user_roles_2: role_str_2 += str(role["id"]) + "," self.assertIn(self.role_str_1, role_str_2) self.assertNotEqual(self.display_name, self.user_info["display_name"])