def test_edit_user_profile(self): """ Title: Я могу отредактировать Имя и Пол в своем профиле. На всех моих карточках будет новое Имя. Существующий пользователь. """ # Устанавливаем новый пароль для пользователя default_new_passwd = AccountingMethods.get_default_password() hash_res_new = generate_sha256(default_new_passwd, self.user["salt"]) databases.db1.accounting.update_user_password(self.user["id"], hash_res_new) self.go_to_main_page(self.driver) self.go_main(self.driver, phone=self.user["phone"], passwd=default_new_passwd, flag_auth=True, flag_api=False) self.get_page(self.driver, self.path_settings.PATH_PROFILE_SETTINGS) profile = self.get_user_profile_form(self.driver, self.user) gender = self.get_gender_user(self.driver, self.user["gender"]) self.clear_input_row(self.driver, profile["name_input"]) new_name = common_utils.random_string() profile["name_input"].send_keys(new_name) gender_ui = self.set_gender(gender, self.user["gender"]) self.click_button(profile["save_btn"]) self.get_element_navigate(self.driver, self.check_main.WU_NAME % new_name) criteria = "gender='%s' and display_name='%s' and id=%s" % (gender_ui, new_name, self.user["id"]) user_updated = databases.db1.accounting.get_user_by_criteria_only(criteria)[0] self.driver.refresh() time.sleep(2) HelpProfileSettingsCheckMethods.progress(self.driver) self.get_user_profile_form(self.driver, user_updated) self.get_gender_user(self.driver, user_updated["gender"]) self.check_header_widget_seller_all(self.driver, user_updated)
def test_edit_store_description(self): """ Title: Я могу отредактировать описание свеого магазина и сохранить изменения (Существующий пользователь.) Description: Если у меня уже заполнены данные о магазине, Я могу изменить их и сохранить изменения. Любой пользователь увидит новую информацию зайдя на страницу моего магазина. Проверить: * в БД корректно сохранилась новая информация * изменения отображаются на странице своего магазина """ # Устанавливаем новый пароль для пользователя default_new_passwd = AccountingMethods.get_default_password() hash_res_new = generate_sha256(default_new_passwd, self.user["salt"]) databases.db1.accounting.update_user_password(self.user["id"], hash_res_new) self.go_main(self.driver, phone=self.user["phone"], passwd=default_new_passwd, flag_api=False) self.get_page(self.driver, self.path_settings.URL_SHOP_INFO) self.assertIsNotNone(self.user["shop_id"], "У user_id='%s' нет идентификатора магазина" % self.user["id"]) shop_details = databases.db1.accounting.get_shop_details_by_shop_id(self.user["shop_id"])[0] self.assertIsNotNone(shop_details, "У user_id='%s' не найдено данных в таблице shop_details" % self.user["id"]) time.sleep(self.time_sleep) store = self.get_store_form(self.driver, user_id=self.user["id"], shop=shop_details) self.clear_input_row(self.driver, store["name_input"]) self.clear_input_row(self.driver, store["address_input"]) self.clear_input_row(self.driver, store["description_input"]) info_new = { 'name': common_utils.random_string(params="letters"), 'address': common_utils.random_string(length=30), 'description': common_utils.random_string(length=150) } store["name_input"].send_keys(info_new["name"]) store["address_input"].send_keys(info_new["address"]) store["description_input"].send_keys(info_new["description"]) self.click_button(store["save_btn"]) self.get_element_navigate(self.driver, self.check_settings.CHANGE_STORE_INFO_SUCCESS) self.driver.refresh() HelpProfileSettingsCheckMethods.progress(self.driver) time.sleep(self.time_sleep) self.get_store_form(self.driver, user_id=self.user["id"], shop=info_new) info_user = databases.db1.accounting.get_user_by_account_id(self.user["id"])[0] shop_id = str(info_user["shop_id"]) criteria = "shop_id=%s and name='%s' and address='%s' and description='%s'" % (shop_id, info_new["name"], info_new["address"], info_new["description"]) store_new = databases.db1.accounting.get_shop_details_by_criteria(criteria)[0] self.assertIsNotNone(store_new, "Не найдено записей в таблице shop_details по запросу %s" % criteria) self.get_store_form(self.driver, user_id=self.user["id"], shop=store_new) self.get_page(self.driver, self.path_shop.URL_SHOP % self.user["id"]) self.get_element_navigate(self.driver, self.check_shop.NAME_STORE % info_new["name"]) self.get_element_navigate(self.driver, self.check_shop.ADDRESS_STORE % info_new["address"]) self.get_element_navigate(self.driver, self.check_shop.DESCRIPTION_STORE % info_new["description"])
def test_as_buyer_to_chat(self, test_good=HelpNavigateCheckMethods.SHP_TO_GOOD): """ Title: Написать текст от покупателя продавцу по поводу его активного товара и перейти в чат с ним. Description: Я, как Покупатель, могу написать продавцу сообщение по Активному товару, нажав на "Связаться с продавцом" и ввести свой текст. После этого я могу перейти в чат с продавцом (...) """ databases.db1.accounting.update_account_details_by_criteria(self.default_user_id, "locale='ru'") self.user = databases.db1.accounting.get_user_by_account_id(self.default_user_id)[0] self.shop = databases.db1.accounting.get_shop_details_by_shop_id(self.user["shop_id"])[0] AccountingMethods.save_user_password(user_id=self.user["id"], hash_passwd=self.user["code_value"]) # Устанавливаем новый пароль для пользователя self.default_new_passwd = AccountingMethods.get_default_password() hash_res_new = generate_sha256(self.default_new_passwd, self.user["salt"]) databases.db1.accounting.update_user_password(self.user["id"], hash_res_new) self.go_main(self.driver, phone=self.user["phone"], passwd=self.default_new_passwd, flag_auth=True) self.get_page(self.driver, self.path_shop.URL_SHOP % self.default_seller_id) self.check_navigate_in_good_page(self.driver, test_good, random.randrange(1, 10, 1)) self.data_good, good_str = self.get_good_data(self.driver) btn_to_call = self.get_element_navigate(self.driver, self.click_good.BTN_CALL_SELLER) self.click_button(btn_to_call) # ищем товар с нужным id obj_good = self.get_element_navigate(self.driver, self.click_good.GOOD_BY_ID_POPUP % self.data_good['good_id']) self.check_express_card_good(obj_good, good_str) # проверяем фото товара self.get_element_navigate(self.driver, (self.click_good.GOOD_BY_ID_POPUP % self.data_good['good_id']) + (self.path_category.PATH_IMG % self.data_good['image'])) # Проверка текста в попапе popup_text = self.get_element_navigate(self.driver, self.check_good.POPUP_MSG_FROM_GOOD % '') Settings.clear_input_row(self.driver, popup_text) text = common_utils.random_string(length=50) popup_text.send_keys(text) obj_send = self.get_element_navigate(self.driver, self.click_good.BTN_SEND) self.click_button(obj_send) # После отправки сообщения отображается окно "Сообщение отправлено" btn_to_good, btn_to_chat = self.get_sent_success_btn(self.driver) self.click_button(btn_to_chat) # После нажатия на "Перейти в чат" я перехожу на страницу чата с данным продавцом self.assertEqual(self.ENV_BASE_URL + self.path_chat.URL_CHAT_WITH_USER % self.default_seller_id, self.driver.current_url) # В чате с продавцом есть отправленное от меня сообщение и карточка товара. Проверить соответствие текста и товара. last_msg = self.get_last_msg(self.driver) self.assertIn(good_str, last_msg, "Экспресс карточка='%s' не совпадает с последним сообщением='%s'" % (good_str, last_msg)) str_msg_to_good = self.TEXT_MSG_TO_GOOD.replace(' ', '') self.assertIn(text, last_msg, "Свое сообщение о товаре='%s' не совпадает с последним " "сообщением='%s'" % (str_msg_to_good, last_msg))
def test_as_buyer_cancel_msg(self, test_good=HelpNavigateCheckMethods.SHP_TO_GOOD): """ Title: Я, как Покупатель, могу не Связываться с продавцом, выбрав Отменить, на форме ввода текста сообщения """ databases.db1.accounting.update_account_details_by_criteria(self.default_user_id, "locale='ru'") self.user = databases.db1.accounting.get_user_by_account_id(self.default_user_id)[0] self.shop = databases.db1.accounting.get_shop_details_by_shop_id(self.user["shop_id"])[0] AccountingMethods.save_user_password(user_id=self.user["id"], hash_passwd=self.user["code_value"]) # Устанавливаем новый пароль для пользователя self.default_new_passwd = AccountingMethods.get_default_password() hash_res_new = generate_sha256(self.default_new_passwd, self.user["salt"]) databases.db1.accounting.update_user_password(self.user["id"], hash_res_new) self.go_main(self.driver, phone=self.user["phone"], passwd=self.default_new_passwd, flag_auth=True) self.get_page(self.driver, self.path_shop.URL_SHOP % self.default_seller_id) self.check_navigate_in_good_page(self.driver, test_good, 1) self.data_good, good_str = self.get_good_data(self.driver) btn_to_call = self.get_element_navigate(self.driver, self.click_good.BTN_CALL_SELLER) self.click_button(btn_to_call) # ищем товар с нужным id obj_good = self.get_element_navigate(self.driver, self.click_good.GOOD_BY_ID_POPUP % self.data_good['good_id']) self.check_express_card_good(obj_good, good_str) # проверяем фото товара good = (self.click_good.GOOD_BY_ID_POPUP % self.data_good['good_id']) img = (self.path_category.PATH_IMG % self.data_good['image']) self.get_element_navigate(self.driver, good + img) # Проверка текста в попапе popup_text = self.element_is_present(self.driver, self.check_good.POPUP_MSG_FROM_GOOD % '') Settings.clear_input_row(self.driver, popup_text) text = common_utils.random_string(length=50) popup_text.send_keys(text) obj_cancel = self.element_is_present(self.driver, self.click_good.BTN_CANCEL_CALL) self.click_button(obj_cancel) #После нажатия на "Отмена" я остаюсь на карточке этого же товара data_url = self.driver.current_url[self.driver.current_url.rfind('/') + 1:].encode('utf-8') self.assertIn(self.data_good["good_id"], data_url) # В чате с продавцом есть отправленное от меня сообщение и карточка товара. Проверить соответствие. self.get_page(self.driver, self.path_chat.URL_CHAT_WITH_USER % self.default_seller_id) last_msg = self.get_last_msg(self.driver) msg = "Свое сообщение о товаре='%s' совпадает с последним сообщением='%s'" % (text, last_msg) self.assertNotIn(text, last_msg, msg)
def test_fill_store_description(self): """ Title: Я могу заполнить описание свеого магазина и сохранить изменения. Новый пользователь. Description: Если у меня не заполнены данные о магазине, Я могу заполнить их на страниц и сохранить. Любой пользователь увидит эту информацию зайдя на страницу моего магазина. Проверить: * в БД созадалась запись о новом магазине пользователя * изменения отображаются на странице своего магазина """ self.go_to_main_page(self.driver) user = self.registration(link_db=databases.db1) store = { 'name': None, 'address': None, 'description': None } self.get_page(self.driver, self.path_settings.URL_SHOP_INFO) store = self.get_store_form(self.driver, user_id=user["id"], shop=store) info_new = { 'name': common_utils.random_string(params="letters"), 'address': common_utils.random_string(length=30), 'description': common_utils.random_string(length=150) } store["name_input"].send_keys(info_new["name"]) store["address_input"].send_keys(info_new["address"]) store["description_input"].send_keys(info_new["description"]) self.click_button(store["save_btn"]) self.get_element_navigate(self.driver, self.check_settings.CHANGE_STORE_INFO_SUCCESS) self.driver.refresh() time.sleep(self.time_sleep) HelpProfileSettingsCheckMethods.progress(self.driver) self.get_store_form(self.driver, user_id=user["id"], shop=info_new) info_user = databases.db1.accounting.get_user_by_account_id(user["id"])[0] shop_id = str(info_user["shop_id"]) criteria = "shop_id=%s and name='%s' and address='%s' and description='%s'" % (shop_id, info_new["name"], info_new["address"], info_new["description"]) store_new = databases.db1.accounting.get_shop_details_by_criteria(criteria)[0] self.assertIsNotNone(store_new, "Не найдено записей в таблице shop_details по запросу %s" % criteria) self.get_store_form(self.driver, user_id=user["id"], shop=store_new) self.get_page(self.driver, self.path_shop.URL_SHOP % user["id"]) time.sleep(self.time_sleep) self.get_element_navigate(self.driver, self.check_shop.NAME_STORE % info_new["name"]) self.get_element_navigate(self.driver, self.check_shop.ADDRESS_STORE % info_new["address"]) self.get_element_navigate(self.driver, self.check_shop.DESCRIPTION_STORE % info_new["description"])
def check_users(self, driver, pages, users_account, stop_test_pages=None): """ Проверка всей информации в бек-офисе о пользователе построчно :param driver: :param pages: :param users_account: :return: """ count_page = 0 for page in range(pages): count_page += 1 ids = driver.find_elements_by_xpath(HNCK.check_back_users.IDS) for id in ids: id = id.text.encode('utf-8')[4:] user = databases.db1.accounting.get_user_by_account_id(id)[0] self.check_user_in_db_query(user, users_account) user_account = databases.db1.accounting.get_user_account_info_by_id(user["id"])[0] count = self.get_info_line(driver, user) msg_count = "Найдено %s строк с упоминанием ID %s" self.assertEqual(len(count), 1, msg_count % (len(count), user["id"])) info_user_back = self.get_info_user_by_line(driver, count[0]) user_roles = databases.db1.accounting.get_user_role_by_id(user_id=user["id"]) info_user_db = self.get_info_user_by_db(user, user_account, HPSCM.get_user_role_ui(user_roles)) msg_check = "Данные из бэк офиса: '%s' не совпали с данными и базы: '%s'" self.assertEqual(info_user_back, info_user_db, msg_check % (info_user_back, info_user_db)) if stop_test_pages == count_page: break if pages > 1: next_pag = HNCK.get_element_navigate(driver, HNCK.click_back_users.PAG_NEXT) FrontAuthCheckMethods.click_button(next_pag)
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"])
def test_seller_card_for_visitor(self): """ Title: Проверка карточки продавца на странице поиска для посетителя """ self.go_main(self.driver, phone=self.user["phone"], passwd=self.default_new_password, flag_auth=True) self.get_page(self.driver, self.path_settings.PATH_PROFILE_SETTINGS) profile = Settings.get_user_profile_form(self.driver, self.user) Settings.clear_input_row(self.driver, profile["name_input"]) new_name = common_utils.random_string() profile["name_input"].send_keys(new_name) self.element_click(self.driver, profile["save_btn"], change_page_url=False) time.sleep(self.timeout) self.driver.delete_all_cookies() self.go_to_main_page(self.driver) u_user = databases.db1.accounting.get_user_by_criteria(account_status='ENABLED', criteria='id=%s' % self.default_test_id)[0] self.search_user(self.driver, u_user['display_name']) self.check_user_card_in_search_page(self.driver, u_user)
def test_select_all_delivery(self): """ Title: Я могу включить все доступные варианты доставки. Любой посетитель увидит их на карточке любого моего товара. Description: * проверить, сохранение изменений в ui * проверить сохранение данных в Бд * проверить отображение всех включенных вариантов доставки на карточке любого своего товара. """ text_tk = "SDEK, B2C, RZD, %s" % common_utils.random_string() text_courier = "Moscow, %s" % common_utils.random_string() text_pickup = "Moscow, %s" % common_utils.random_string() self.get_page(self.driver, self.path_settings.URL_DELIVERY_INFO) delivery_db = databases.db1.accounting.get_delivery_details_by_user_id(self.user["id"]) err_msg_1 = "У пользователя есть активные варианты доставки: %s. Метод setUp отработал некорректно" self.assertEqual(len(delivery_db), 0, err_msg_1 % delivery_db) delivery_info = self.get_status_delivery_options(delivery_db) time.sleep(self.time_sleep) delivery = self.get_delivery_form(self.driver, delivery_info) self.change_all_delivery_options(self.driver, delivery_info, drop=False) delivery["tk_input"].send_keys(text_tk) delivery["courier_input"].send_keys(text_courier) delivery["pickup_input"].send_keys(text_pickup) self.click_button(delivery["save_btn"]) self.element_is_present(self.driver, self.check_settings.CHANGE_DELIVERY_SUCCESS) delivery_db_updated = databases.db1.accounting.get_delivery_details_by_user_id(self.user["id"]) err_msg = "В БД добавлено только %s записей, вместо 5" self.assertEqual(len(delivery_db_updated), 5, err_msg % len(delivery_db_updated)) self.driver.refresh() HelpProfileSettingsCheckMethods.progress(self.driver) delivery_info_updated = self.get_status_delivery_options(delivery_db_updated) time.sleep(self.time_sleep) self.get_delivery_form(self.driver, delivery_info_updated) # переход на страницу магазина и в товар self.get_page(self.driver, self.path_shop.URL_SHOP % self.user["id"]) obj_good = self.get_element_navigate(self.driver, self.click_shop.GOOD % 1) good_name = obj_good.text.encode('utf-8') self.click_button(obj_good) self.get_element_navigate(self.driver, self.check_good.NAME_GOOD % good_name) # Проверка блока Варианты доставки на странице товара self.check_all_delivery_options_in_good(self.driver, text_tk, text_courier, text_pickup)
def test_fill_user_profile(self): """ Title: Я могу отредактировать Имя и Пол в своем профиле. На всех моих карточках будет новое Имя. Новый пользователь. """ self.go_to_main_page(self.driver) user = self.registration(link_db=databases.db1) self.get_page(self.driver, self.path_settings.PATH_PROFILE_SETTINGS) profile = self.get_user_profile_form(self.driver, user) gender = self.get_gender_user(self.driver, user["gender"]) self.clear_input_row(self.driver, profile["name_input"]) new_name = common_utils.random_string() profile["name_input"].send_keys(new_name) gender_ui = self.set_gender(gender, user["gender"]) self.click_button(profile["save_btn"]) self.get_element_navigate(self.driver, self.check_main.WU_NAME % new_name) criteria = "gender='%s' and display_name='%s' and id=%s" % (gender_ui, new_name, user["id"]) user_updated = databases.db1.accounting.get_user_by_criteria_only(criteria)[0] self.driver.refresh() time.sleep(2) HelpProfileSettingsCheckMethods.progress(self.driver) self.get_user_profile_form(self.driver, user_updated) self.get_gender_user(self.driver, user_updated["gender"]) self.check_header_widget_seller_all(self.driver, user_updated)
def test_select_all_payments(self): """ Title: Я могу включить все доступные варианты оплаты. Любой посетитель увидит их на карточке любого моего товара. Description: * проверить, сохранение изменений в ui * проверить сохранение данных в Бд * проверить отображение всех включенных вариантов оплаты на карточке любого своего товара. """ text_card = "Visa, Master Card, %s" % common_utils.random_string() text_e_money = "Webmoney, Bitcoint, %s" % common_utils.random_string() self.get_page(self.driver, self.path_settings.URL_PAYMENT_INFO) payment_db = databases.db1.accounting.get_payment_details_by_user_id(self.user["id"]) err_msg_1 = "У пользователя есть активные варианты оплаты: %s. Метод setUp отработал некорректно" self.assertEqual(len(payment_db), 0, err_msg_1 % payment_db) payment_info = self.get_status_payment_options(payment_db) payments = self.get_payment_form(self.driver, payment_info) self.change_all_payment_options(self.driver, payment_info, drop=False) payments["card_input"].send_keys(text_card) payments["e_money_input"].send_keys(text_e_money) self.click_button(payments["save_btn"]) self.element_is_present(self.driver, self.check_settings.CHANGE_PAYMENTS_SUCCESS) payment_db_updated = databases.db1.accounting.get_payment_details_by_user_id(self.user["id"]) err_msg = "В БД добавлено только %s записей, вместо 5" self.assertEqual(len(payment_db_updated), 5, err_msg % len(payment_db_updated)) self.driver.refresh() HelpProfileSettingsCheckMethods.progress(self.driver) payment_info_updated = self.get_status_payment_options(payment_db_updated) self.get_payment_form(self.driver, payment_info_updated) # переход на страницу магазина и в товар self.get_page(self.driver, self.path_shop.URL_SHOP % self.user["id"]) obj_good = self.get_element_navigate(self.driver, self.click_shop.GOOD % 1) good_name = obj_good.text.encode('utf-8') self.click_button(obj_good) self.get_element_navigate(self.driver, self.check_good.NAME_GOOD % good_name) # Проверка блока Варианты оплаты на странице товара self.check_all_payment_options_in_good(self.driver, text_card, text_e_money)
def test_fill_store_requisites(self): """ Title: Я могу заполнить реквизиты компании и сохранить изменения. Новый пользователь. Description: Блок "О компании" и "Банковские реквизиты" Проверить: * в БД сохранились данные * изменения отображаются на странице задания реквизитов """ self.go_to_main_page(self.driver) self.user = self.registration(link_db=databases.db1) self.get_page(self.driver, self.path_settings.URL_COMPANY_DETAILS) details = self.get_details_form(self.driver, self.user) self.clear_input_row(self.driver, details["legal_name_input"]) self.clear_input_row(self.driver, details["inn_input"]) self.clear_input_row(self.driver, details["kpp_input"]) self.clear_input_row(self.driver, details["ogrn_input"]) self.clear_input_row(self.driver, details["legal_address_input"]) self.clear_input_row(self.driver, details["real_address_input"]) self.clear_input_row(self.driver, details["bik_input"]) self.clear_input_row(self.driver, details["name_bank_input"]) self.clear_input_row(self.driver, details["account_input"]) self.clear_input_row(self.driver, details["correspondent_input"]) details_new = { 'legal_name': common_utils.random_string(params="russian"), 'inn': common_utils.random_string(params='digits', length=12), 'kpp': common_utils.random_string(params='digits', length=9), 'ogrn': common_utils.random_string(params='digits', length=13), 'legal_address': common_utils.random_string(params="russian", length=30), 'real_address': common_utils.random_string(params="russian", length=35), 'bik': common_utils.random_string(params='digits', length=9), 'name_bank': common_utils.random_string(params="russian", length=30), 'account': common_utils.random_string(params='digits', length=20), 'correspondent': common_utils.random_string(params='digits', length=20), } details["legal_name_input"].send_keys(details_new["legal_name"]) details["inn_input"].send_keys(details_new["inn"]) details["kpp_input"].send_keys(details_new["kpp"]) details["ogrn_input"].send_keys(details_new["ogrn"]) details["legal_address_input"].send_keys(details_new["legal_address"]) details["real_address_input"].send_keys(details_new["real_address"]) details["bik_input"].send_keys(details_new["bik"]) details["name_bank_input"].send_keys(details_new["name_bank"]) details["account_input"].send_keys(details_new["account"]) details["correspondent_input"].send_keys(details_new["correspondent"]) self.click_button(details["save_btn"]) err_msg = "Не появилось сообщение об успешном сохранении." self.element_is_present(self.driver, self.check_settings.CHANGE_STORE_INFO_SUCCESS) self.driver.refresh() HelpProfileSettingsCheckMethods.progress(self.driver) criteria_1 = "legal_name='%s' and inn='%s' and kpp='%s' and ogrn='%s' and " criteria_2 = "legal_address='%s' and actual_address='%s' and bank_bic='%s' and " criteria_3 = "bank_name_and_address='%s' and bank_account='%s' and bank_correspondent_account='%s'" legal_name = details_new["legal_name"].encode('utf-8') legal_address = details_new["legal_address"].encode('utf-8') real_address = details_new["real_address"].encode('utf-8') name_bank = details_new["name_bank"].encode('utf-8') crt_1 = criteria_1 % (legal_name, details_new["inn"], details_new["kpp"], details_new["ogrn"]) crt_2 = criteria_2 % (legal_address, real_address, details_new["bik"]) crt_3 = criteria_3 % (name_bank, details_new["account"], details_new["correspondent"]) criteria = crt_1 + crt_2 + crt_3 user_updated = databases.db1.accounting.get_user_by_criteria_only(criteria)[0] self.assertIsNotNone(user_updated, "Не найдено записей в таблице account_details по запросу %s" % criteria) self.get_details_form(self.driver, user_updated)