예제 #1
0
    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)
예제 #2
0
    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"])
예제 #3
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))
예제 #4
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)
예제 #5
0
    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"])
예제 #6
0
 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)
예제 #7
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)
예제 #8
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"])
예제 #9
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)
예제 #10
0
 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)
예제 #11
0
 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)
예제 #12
0
 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)
예제 #13
0
    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)