예제 #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_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"])
예제 #4
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)
예제 #5
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)
예제 #6
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)
예제 #7
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)