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