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