예제 #1
0
 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)
예제 #2
0
 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"])