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_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)