Esempio n. 1
0
    def test_search_auth_user(self):
        """ Проверка поиска по сайту, авторизованным пользователем.
        Ищем заданного пользователя по сайту.
        Свяеряем поисковый запрос и запрос на страницу поиска.
        """
        service_log.run(self)

        # делаем выборку пользователя и устанавливаем новый пароль для пользователя
        user_id = AccountingMethods.get_default_user_id(role="buyer")
        user = databases.db1.accounting.get_user_by_account_id(user_id)[0]
        default_new_passwd = AccountingMethods.get_default_password()
        hash_res_new = generate_sha256(default_new_passwd, user["salt"])
        databases.db1.accounting.update_user_password(user["id"], hash_res_new)

        self.go_main(self.driver, phone=user["phone"], passwd=default_new_passwd, flag_auth=True)

        # вводим строку для поиска
        input_search = HelpNavigateMethods.get_element_navigate(self.driver, HelpNavigateMethods.input_main.SEARCH)
        btn_search = HelpNavigateMethods.get_element_navigate(self.driver, HelpNavigateMethods.click_main.BTN_SEARCH)
        query = user["display_name"].decode('utf-8')
        input_search.send_keys(query)

        # интегрируем скрипт, запускаем сервер
        self.inclusion_js_script(self.driver)
        server = start_WebServer()

        # нажимаем кнопку поиска
        btn_search.click()

        # получаем ответ и проверяем данные счетчиков
        output_server = get_response_by_WebServer(server, 2)
        segment_data_query = self.parsing_segment_data(output_server[0]["body"])
        segment_data_visit = self.parsing_segment_data(output_server[1]["body"])
        self.check_search_query(segment_data=segment_data_query, query=query, role=u'registered')
        self.check_search_result(segment_data=segment_data_visit, query=query, role=u'registered')
Esempio n. 2
0
    def test_restorePassword_by_phone_incorrect_password(self):
        """
        Title: Я не могу войти в систему, если некорректно введу полученный при восстановлении по телефону пароль.
        Description:
            * Отобразится сообщение "Пароль неверен"
        """
        service_log.run(self)
        password = ['incorrect pass', '123']
        self.go_authorization_page(self.driver)
        self.go_restore_page(self.driver)
        self.click_to_phone(self.driver)

        phone, sent_passwd_button = self.get_data_restore(self.driver)
        user = databases.db1.accounting.get_users_with_status()[0]
        AccountingMethods.save_user_password(user_id=user["id"], hash_passwd=user["code_value"], salt=user["salt"])
        default_new_passwd = AccountingMethods.get_default_password(4)
        override_passwd_hash = generate_sha256(default_new_passwd, user["salt"])
        databases.db1.accounting.update_passwd_hash_by_phone(passwd_hash=override_passwd_hash, phone=user["phone"])

        # вводим номер телефона
        phone.send_keys(user["phone"][1:])
        self.click_button(sent_passwd_button)
        self.check_password_is_sent(self.driver)

        pass_input = self.get_pass_input(self.driver)
        submit_button = self.get_login(self.driver)

        self.check_form_sent_passwd(self.get_form_note(self.driver))

        pass_input.send_keys(password[1])
        self.click_button(submit_button)

        time.sleep(1)
        self.check_incorrect_passwd_or_phone(self.driver)
Esempio n. 3
0
    def test_authorization_by_phone_correct(self, type_password="******"):
        """
        Title: Я могу войти в систему введя корректный телефон и пароль
        Description:
        Проверка:
            * Наличие профиля пользователя
            * Имя в профиле совпадает с именем пользователя
            * Аватар пользователя совпадает с аватаром пользователя
            * Номер телефона совпадает с номером телефона пользователя
        """
        service_log.run(self)
        # Устанавливаем новый пароль для пользователя
        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_authorization_page(self.driver)

        # Проверка страница авторизации
        self.check_page_authorization(self.driver)

        obj_phone, obj_password, obj_submit_button = self.get_data_authorization(self.driver)
        changed_passwd = self.get_password(type_passwd=type_password, source_passwd=default_new_passwd)
        changed_phone = self.get_phone(type_phone=self.type_phone, source_phone=self.user["phone"])

        # Вводим данные на авторизацию
        self.send_password(password_object=obj_password, password_number=changed_passwd)
        self.send_phone(phone_object=obj_phone, phone_number=changed_phone)

        # Нажатие на кнопку авторизации
        Navigate.element_click(self.driver, obj_submit_button, change_page_url=True)

        # Проверка виджета профиля
        self.user_profile_menu(self.driver, self.user)
Esempio n. 4
0
    def test_authorization_by_phone_incorrect_password(self, type_password="******"):
        """
        Title: Я не могу войти в систему, введя корректный телефон и неверный пароль.
        Description:
        * Отображается сообщение "Проверьте правильность ввода номера телефона и пароля"
        """
        service_log.run(self)
        # Устанавливаем новый пароль для пользователя
        default_new_passwd = AccountingMethods.get_default_password(num=3)
        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_authorization_page(self.driver)
        obj_phone, obj_password, obj_submit_button = self.get_data_authorization(self.driver)
        changed_passwd = self.get_password(type_passwd=type_password, source_passwd=default_new_passwd)
        changed_phone = self.get_phone(type_phone=self.type_phone, source_phone=self.user["phone"])

        # Вводим данные на авторизацию
        self.send_password(password_object=obj_password, password_number=changed_passwd)
        self.send_phone(phone_object=obj_phone, phone_number=changed_phone)

        # Нажатие на кнопку авторизации
        self.submit_button(obj_submit_button)

        # Проверка формы при не корректном пароле
        self.check_incorrect_passwd(self.driver)
Esempio n. 5
0
    def test_authorization_form_register_depends(self, type_phone="PHONE_VALID", type_password="******"):
        """
        Title: Проверить регистрозависимость пароля, введя пароль, отличающийся от корректного только регистром
        Description:
        * Отображается сообщение "Проверьте правильность ввода номера телефона и пароля"
        """
        service_log.run(self)
        # Устанавливаем новый пароль для пользователя
        default_new_passwd = AccountingMethods.get_default_password(num=3)
        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_authorization_page(self.driver)
        # self.click_to_phone(self.driver)
        obj_phone, obj_password, obj_submit_button = self.get_data_authorization(self.driver)
        changed_passwd = self.get_password(type_passwd=type_password, source_passwd=default_new_passwd)
        changed_phone = self.get_phone(type_phone=type_phone, source_phone=self.user["phone"])

        # Вводим данные на авторизацию
        self.send_password(password_object=obj_password, password_number=changed_passwd)
        self.send_phone(phone_object=obj_phone, phone_number=changed_phone)

        # Нажатие на кнопку авторизации
        self.submit_button(obj_submit_button)

        # Проверка формы при не корректном пароле
        self.check_incorrect_passwd(self.driver)
Esempio n. 6
0
    def test_as_buyer_to_inactive_good(self):
        """
        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)
        list_good_id = self.get_good_id_from_page_source(self.driver, self.path_shop.TO_FIND_GOODS)
        self.good_id = list_good_id[0]
        ware_cassandra = databases.db7.warehouse.get_wares_by_ware_id(self.good_id)[0]
        self.update_data_content(ware_cassandra, self.deserialize_content(ware_cassandra['content']))
        # Меняем статус на BANNED
        services.warehouse.root.tframed.makeModeration(self.good_id, False, self.moderator_id)

        self.get_page(self.driver, self.path_good.URL_GOOD % self.good_id)
        self.data_good, good_str = self.get_good_data(self.driver)
        self.get_element_navigate(self.driver, self.click_good.BTN_CALL_SELLER_HOLD)
Esempio n. 7
0
    def test_registration_by_phone_incorrect_password(self):
        """
        Title: Я не могу зарегистрироваться, если некорректно введу полученный пароль.
        Отобразится сообщение "Пароль неверен"
        """
        service_log.run(self)
        user_name = 'Vasya vvedet parol 6 simvolov'
        login = str(random.randrange(1000000000, 7007777777, 1))
        self.get_page(self.driver, self.path_reg.URL_REG)
        self.click_to_phone(self.driver)
        obj_phone, obj_username, obj_submit_button = self.get_data_registration(self.driver)

        # Вводим имя пользователя, пароль
        obj_username.send_keys(user_name)
        obj_phone.send_keys(login)
        self.click_button(obj_submit_button)

        info_user = databases.db1.accounting.get_data_user_by_phone('7' + login)[0]  # salt
        password_field = self.get_name_pass(self.driver)  # password
        AccountingMethods.save_user_password(info_user["id"], info_user["code_value"], info_user["salt"])

        # генерируем новый пароль и подменяем на него
        password = AccountingMethods.get_default_password(5)
        hash_res_new = generate_sha256(password, info_user["salt"])
        databases.db1.accounting.update_user_password(info_user["id"], hash_res_new)
        databases.db1.accounting.update_user_salt(info_user["id"], info_user["salt"])

        # вставляем пароль и пробуем зарегистрироваться
        password_field.send_keys(password)
        ok_button = self.get_submit_ok(self.driver)
        self.click_button(ok_button)
        self.check_not_right_password(self.driver)
Esempio n. 8
0
    def test_restorePassword_by_phone_form_empty_password(self):
        """
        Title: Если не введен пришедший по смс пароль. Отображается сообщение "Введите пароль"
        """
        service_log.run(self)
        password = ['empty pass', '']
        self.go_authorization_page(self.driver)
        self.go_restore_page(self.driver)
        self.click_to_phone(self.driver)

        phone, sent_passwd_button = self.get_data_restore(self.driver)
        user = databases.db1.accounting.get_users_with_status()[0]
        AccountingMethods.save_user_password(user_id=user["id"], hash_passwd=user["code_value"], salt=user["salt"])
        default_new_passwd = AccountingMethods.get_default_password(4)
        override_passwd_hash = generate_sha256(default_new_passwd, user["salt"])
        databases.db1.accounting.update_passwd_hash_by_phone(passwd_hash=override_passwd_hash, phone=user["phone"])

        # вводим номер телефона
        phone.send_keys(user["phone"][1:])
        self.click_button(sent_passwd_button)
        self.check_password_is_sent(self.driver)

        pass_input = self.get_pass_input(self.driver)
        submit_button = self.get_login(self.driver)

        self.check_form_sent_passwd(self.get_form_note(self.driver))

        pass_input.send_keys(password[1])
        submit_button.click()

        time.sleep(1)
        self.check_need_password(self.driver)
Esempio n. 9
0
    def setUp(cls):
        # Настройка окружения и вспомогательные параметры
        default_user_id = AccountingMethods.get_default_user_id(role='seller')
        cls.user = databases.db1.accounting.get_user_by_account_id(default_user_id)[0]
        cls.payment_db = databases.db1.accounting.get_payment_details_by_user_id(default_user_id)
        databases.db1.accounting.update_account_details_by_criteria(default_user_id, "locale='ru'")
        AccountingMethods.save_user_password(user_id=cls.user["id"], hash_passwd=cls.user["code_value"],
                                             salt=cls.user["salt"])
        # Подготовка работы с selenium
        cls.driver = HelpLifeCycleCheckMethods.get_driver()
        service_log.preparing_env(cls)
        # Устанавливаем новый пароль для пользователя
        default_new_passwd = AccountingMethods.get_default_password()
        hash_res_new = generate_sha256(default_new_passwd, cls.user["salt"])
        databases.db1.accounting.update_user_password(cls.user["id"], hash_res_new)
        cls.go_to_main_page(cls.driver)
        cls.go_main(cls.driver, phone=cls.user["phone"], passwd=default_new_passwd, flag_api=False)

        # Переход на страницу Оплата и выключение всех настроек оплаты
        cls.get_page(cls.driver, cls.path_settings.URL_PAYMENT_INFO)
        payment_info = cls.get_status_payment_options(cls.payment_db)
        payments = cls.get_payment_form(cls.driver, payment_info)
        cls.change_all_payment_options(cls.driver, payment_info, drop=True)
        cls.click_button(payments["save_btn"])
        cls.element_is_present(cls.driver, cls.check_settings.CHANGE_PAYMENTS_SUCCESS)
Esempio n. 10
0
    def test_registration_by_email_incorrect_already_in_db(self):
        """
        Title: Я не могу зарегистрироваться по e-mail, если на этот e-mail уже регистрировались ранее.
        Description:
        * Отображается сообщение "Пользователь с указанным email-адресом уже зарегистрирован"
        """
        service_log.run(self)
        # Регистрация
        self.click_reg_and_auth(self.driver)
        reg_email = self.get_reg_email_form(self.driver)

        name = common_utils.random_string()
        stamp = str(time.time())
        email = '*****@*****.**' % stamp
        password = AccountingMethods.get_default_password(5)

        crt = "id=%s" % AccountingMethods.get_default_user_id('seller')
        user = databases.db1.accounting.get_user_by_criteria_only(criteria=crt)[0]
        databases.db1.accounting.update_account_details_by_criteria(user["id"], "email='%s'" % email.lower())

        reg_email["name_input"].send_keys(name)
        reg_email["email_input"].send_keys(email)
        reg_email["password_input"].send_keys(password)
        self.click_button(reg_email["reg_btn"])
        self.get_element_navigate(self.driver, self.check_reg.E_ALREADY_REG_EMAIL)
        self.go_to_main_page(self.driver)
        self.check_header_widget_visitor(self.driver)
Esempio n. 11
0
    def test_authorization_by_phone_incorrect_user_wait_for_registration(self, type_password="******"):
        """
        Title: Я не могу войти в систему по телефону, если мой пользователь в статусе WAIT_FOR_REGISTRATION
        (пользователь не закончил регистрацию)
        Description:
        * Отображается соответствующее сообщение
        """
        service_log.run(self)
        status = "WAIT_FOR_REGISTRATION"
        user = databases.db1.accounting.get_not_enabled_user(status=status)[0]
        AccountingMethods.save_user_password(user_id=user["id"], hash_passwd=user["code_value"])

        # Устанавливаем новый пароль для пользователя
        default_new_passwd = AccountingMethods.get_default_password()
        hash_res_new = generate_sha256(default_new_passwd, user["salt"])
        databases.db1.accounting.update_user_password(user["id"], hash_res_new)

        # Переходим на страницу авторизации
        self.go_authorization_page(self.driver)
        obj_phone, obj_password, obj_submit_button = self.get_data_authorization(self.driver)
        changed_passwd = self.get_password(type_passwd=type_password, source_passwd=default_new_passwd)
        changed_phone = self.get_phone(type_phone=self.type_phone, source_phone=user["phone"])

        # Вводим данные на авторизацию
        self.send_password(password_object=obj_password, password_number=changed_passwd)
        self.send_phone(phone_object=obj_phone, phone_number=changed_phone)

        # Нажатие на кнопку авторизации
        self.submit_button(obj_submit_button)

        # Проверка пользователя с незаконченной регистрацией
        self.check_user_wait_for_registration(self.driver)
Esempio n. 12
0
    def test_first_visit_login(self, role="seller"):
        """ Проверка авторизации на сайте.
        Переходим на главную страницу. Переходим на страницк авторизации.
        Интегрируем в неё скрипт для перехвата сообщений и отправки их на наш тестовый сервер.
        Авторизуемся под пользователем.
        Получаем ответ и проверяем его.
        """
        service_log.run(self)

        # делаем выборку пользователя и устанавливаем новый пароль для пользователя
        user_id = AccountingMethods.get_default_user_id(role=role)
        user = databases.db1.accounting.get_user_by_account_id(user_id)[0]
        default_new_passwd = AccountingMethods.get_default_password()
        hash_res_new = generate_sha256(default_new_passwd, user["salt"])
        databases.db1.accounting.update_user_password(user["id"], hash_res_new)

        # переходим на страницу авторизации
        HelpAuthMethods.go_authorization_page(self.driver)

        # интегрируем скрипт, запускаем сервер
        self.inclusion_js_script(self.driver)
        server = start_WebServer()

        self.auth_to_website(passwd=default_new_passwd, phone=user["phone"])

        output_server = get_response_by_WebServer(server, 2)
        segment_data1 = self.parsing_segment_data(output_server[0]["body"])
        segment_data2 = self.parsing_segment_data(output_server[1]["body"])
        self.check_login(role=role, segment_data=segment_data1)
        self.check_first_visit_for_auth(segment_data=segment_data2, role=role, page="index")
Esempio n. 13
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)
Esempio n. 14
0
    def test_authorization_by_phone_incorrect_user_disabled(self, type_password="******"):
        """
        Title: Я не могу войти в систему по телефону, если  мой пользователь в статусе DISABLED
        (пользователь Заблокирован)
        Description:
        * Отображается соответствующее сообщение
        """
        service_log.run(self)
        status = "DISABLED"
        user = databases.db1.accounting.get_not_enabled_user(status=status)[0]
        AccountingMethods.save_user_password(user_id=user["id"], hash_passwd=user["code_value"])

        # Устанавливаем новый пароль для пользователя
        default_new_passwd = AccountingMethods.get_default_password()
        hash_res_new = generate_sha256(default_new_passwd, user["salt"])
        databases.db1.accounting.update_user_password(user["id"], hash_res_new)

        # Переходим на страницу авторизации
        self.go_authorization_page(self.driver)
        obj_phone, obj_password, obj_submit_button = self.get_data_authorization(self.driver)
        changed_passwd = self.get_password(type_passwd=type_password, source_passwd=default_new_passwd)
        changed_phone = self.get_phone(type_phone=self.type_phone, source_phone=user["phone"])

        # Вводим данные на авторизацию
        self.send_password(password_object=obj_password, password_number=changed_passwd)
        self.send_phone(phone_object=obj_phone, phone_number=changed_phone)

        # Нажатие на кнопку авторизации
        self.submit_button(obj_submit_button)

        # Проверка блокировки пользователя
        Navigate.get_element_navigate(self.driver, self.check_auth.ERR_CHECK_DISABLED)
        Navigate.go_to_main_page(self.driver)
        self.check_header_widget_visitor(self.driver)
Esempio n. 15
0
    def setUp(cls):
        # Подготовка работы с selenium
        cls.driver = HelpLifeCycleCheckMethods.get_driver()
        service_log.preparing_env(cls)
        # Настройка окружения и вспомогательные параметры
        cls.default_user_id = AccountingMethods.get_default_user_id(role="buyer")
        databases.db1.accounting.update_account_details_by_criteria(cls.default_user_id, "locale='ru'")
        cls.user = databases.db1.accounting.get_user_by_account_id(cls.default_user_id)[0]
        AccountingMethods.save_user_password(user_id=cls.user["id"], hash_passwd=cls.user["code_value"])

        # Устанавливаем новый пароль для пользователя
        cls.default_new_passwd = AccountingMethods.get_default_password()
        hash_res_new = generate_sha256(cls.default_new_passwd, cls.user["salt"])
        databases.db1.accounting.update_user_password(cls.user["id"], hash_res_new)

        cls.go_main(cls.driver, phone=cls.user["phone"], passwd=cls.default_new_passwd, flag_auth=True)
        # Переход в Контакты
        # cls.get_page(cls.driver, cls.path_user_contact.URL_FAVORITES_USERS)
        # Переход по кнопке Новый контакт
        # cls.get_element_navigate(cls.driver, cls.click_user_contact.BTN_NEW_CONTACT).click()
        # cls.input_phone = cls.get_element_navigate(cls.driver, cls.input_user_contact.PHONE)
        # Получить список пользователей в контактах у пользователя
        cls.fav_users_list = databases.db1.accounting.get_fav_user_by_user_id(cls.user["id"])
        l = lambda l: list() if cls.fav_users_list is None else cls.fav_users_list
        cls.fav_list = [str(value["favorites_account_id"]) for value in l(cls.fav_users_list)]
        # чтобы исключить попадание себя в список контактов
        cls.fav_list.append(str(cls.user["id"]))
Esempio n. 16
0
    def back_auth(role, obj_login, obj_pass, obj_submit, link_db):
        """
        Авторизация в бэк-офисе
        :param role:
        :param obj_login:
        :param obj_pass:
        :param obj_submit:
        :return:
        """
        # Настройка окружения и вспомогательные параметры
        default_user_id = AccountingMethods.get_default_user_id(role=role)
        user = link_db.accounting.get_user_by_account_id(default_user_id)[0]
        #AccountingMethods.save_user_password(user_id=user["id"], hash_passwd=user["code_value"])

        # Устанавливаем новый пароль для пользователя
        default_new_passwd = AccountingMethods.get_default_password()
        hash_res_new = generate_sha256(default_new_passwd, user["salt"])
        databases.db1.accounting.update_user_password(user["id"], hash_res_new)

        # Вводим данные на авторизацию
        FrontAuthCheckMethods.send_phone(phone_object=obj_login, phone_number=user["phone"][1:])
        FrontAuthCheckMethods.send_password(password_object=obj_pass, password_number=default_new_passwd)
        # Нажатие на кнопку авторизации
        FrontAuthCheckMethods.submit_button(obj_submit)
        return user
Esempio n. 17
0
    def test_authorization_by_email_incorrect_user_disabled(self):
        """
        Title: Я не могу войти в систему по e-mail, если мой пользователь в статусе DISABLED (пользователь Заблокирован)
        Description:
        * Отображается соответствующее сообщение
        """
        service_log.run(self)
        criteria = "display_name is not NULL"
        stamp = str(time.time())
        email = "*****@*****.**" % stamp
        user = databases.db1.accounting.get_user_by_criteria(account_status="DISABLED", criteria=criteria)[0]
        databases.db1.accounting.update_account_details_by_criteria(user["id"], "email='%s'" % email)
        AccountingMethods.save_user_password(user_id=user["id"], hash_passwd=user["code_value"])

        # Устанавливаем новый пароль для пользователя
        default_new_passwd = AccountingMethods.get_default_password()
        hash_res_new = generate_sha256(self.default_new_passwd, user["salt"])
        databases.db1.accounting.update_user_password(user["id"], hash_res_new)
        self.click_reg_and_auth(self.driver)
        self.click_tab_login(self.driver)
        auth_form = self.get_auth_email_form(self.driver)
        auth_form["email_input"].send_keys(email)
        auth_form["password_input"].send_keys(default_new_passwd)
        self.click_button(auth_form["login_btn"])
        self.get_element_navigate(self.driver, self.check_auth.ERR_CHECK_DISABLED)
        self.go_to_main_page(self.driver)
        self.check_header_widget_visitor(self.driver)
Esempio n. 18
0
    def test_registration_by_email_incorrect_user_disabled(self):
        """
        Title: Я не могу зарегистрироваться по e-mail, если мой пользователь ранее был заблокирован (DISABLED)
        Description: Отображается соответствующее сообщение
        """
        service_log.run(self)
        # Регистрация
        self.click_reg_and_auth(self.driver)
        reg_email = self.get_reg_email_form(self.driver)

        name = common_utils.random_string()
        stamp = str(time.time())
        email = '*****@*****.**' % stamp
        password = AccountingMethods.get_default_password(5)

        user = databases.db1.accounting.get_user_by_criteria(account_status="DISABLED", criteria="id is not NULL")[0]
        databases.db1.accounting.update_account_details_by_criteria(user["id"], "email='%s'" % email.lower())

        reg_email["name_input"].send_keys(name)
        reg_email["email_input"].send_keys(email)
        reg_email["password_input"].send_keys(password)
        self.click_button(reg_email["reg_btn"])
        self.get_element_navigate(self.driver, self.check_reg.E_ALREADY_REG_EMAIL)
        self.go_to_main_page(self.driver)
        self.check_header_widget_visitor(self.driver)
Esempio n. 19
0
    def test_registration_by_email(self):
        """
        Title: Регистрация пользователя.
        """
        service_log.run(self)
        # Регистрация
        url_main = self.driver.current_url.encode('utf-8')
        self.click_reg_and_auth(self.driver)
        reg_email = self.get_reg_email_form(self.driver)
        name = u'Тест %s' % common_utils.random_string(length=4)

        email = '*****@*****.**' % str(time.time())
        password = AccountingMethods.get_default_password(5)

        reg_email["name_input"].send_keys(name)
        reg_email["email_input"].send_keys(email)
        reg_email["password_input"].send_keys(password)
        self.element_click(self.driver, reg_email["reg_btn"], change_page_url=False)
        start_work = self.get_reg_email_success(self.driver, email.lower())
        self.element_click(self.driver, start_work, change_page_url=True)
        work = time.time()
        messages = None
        while time.time() - work < self.email_timeout:
            try:
                messages = self.get_email(to_email=email)
                self.assertNotEqual(len(messages), 0, "Не получено сообщение")
                break
            except Exception:
                pass
        self.assertIsNotNone(messages, "Не получено сообщение")
        message = messages[0]
        mail_from = message['From']
        mail_body = message['Body']
        valid = mail_body.split(self.URL_VALIDATE_PATH)
        valid_hash = valid[1][:64]
        validate_path = self.URL_VALIDATE_EMAIL % valid_hash
        err_msg_1 = "Полученный урл активации емайла не найден в теле полученного письма"
        self.assertIn('*****@*****.**', mail_from, "Почта отправителя: %s" % mail_from)
        self.assertIn(validate_path, mail_body, err_msg_1)
        # Переход по ссылке валидации емайла
        self.get_page(self.driver, validate_path)
        url_web = self.driver.current_url.encode('utf-8')
        url_need = self.ENV_BASE_URL + self.path_reg.URL_VALIDATED_EMAIL
        err_msg = "Урл страницы успешной валидации емайла: %s не соответствует целевому урлу: %s"
        self.assertEqual(url_web, url_need, err_msg % (url_web, url_need))
        # начать работу
        start_work = self.get_validated_email_success(self.driver)
        self.element_click(self.driver, start_work)

        # Проверка, что после нажатия на кнопку Начать работу произошел переход обратно на главную
        url_web = self.driver.current_url.encode('utf-8')
        err_msg = "Не произошел переход на главную страницу %s, пользователь остался на странице %s"
        self.assertEqual(url_web, url_main, err_msg % (url_main, url_web))

        # Проверка виджета профиля
        self.check_menu_profile_widget_total(self.driver, name)
Esempio n. 20
0
    def setUp(cls):
        # Подготовка работы с selenium
        cls.driver = HelpLifeCycleCheckMethods.get_driver()
        service_log.preparing_env(cls)

        # Берем тестового продавца на магазине которого будут проводиться проверки
        cls.default_test_id = AccountingMethods.get_default_user_id(role='seller')
        cls.default_new_password = AccountingMethods.get_default_password()
        cls.user = databases.db1.accounting.get_user_by_criteria(account_status='ENABLED',
                                                                 criteria='id=%s' % cls.default_test_id)[0]
Esempio n. 21
0
 def test_contact_the_seller_as_guest(self):
     """
     Title: Я, как Гость, могу отправить продавцу сообщение по Активному товару, нажав на
     "Связаться с продавцом" и указав e-mail для ответа
     Description:
     Проверяется только действие, состав UI форм проверяется ниже отдельно
     Use Case:
     * Если я гость и нажимаю "Связаться с продавцом" по активному товару:
         - открывается окно "Связаться с продавцом"
         - среди прочих, присутствуют поля "Имя" и "e-mail"
     * Заполнить и отправить форму
         - отображается окно "Сообщение отправлено" с возможностью придумать пароль
         - В БД создался новый пользователь в статусе Wait_For_Registration (данные пользователя = вводимым данным)
     * Придумать пароль и нажать "Зарегистрироваться"
         - происходит автологин в систему под созданной учетной записью
         - отображается сообщение "Вы зарегистрированы на платформе"
         - В БД у созданного пользователя изменился статус на Enabled  и сохранился пароль
         - В чате с продавцом есть отправленное от меня сообщение и карточка товара.
         Проверить соответствие текста и товара.
     """
     buyer_name = u"TestUserName%s" % str(time.time())[:-3]
     msg_text = u"Calling_to_seller_%s" % str(time.time())
     buyer_email = self.get_new_email(databases.db1)
     new_password = AccountingMethods.get_default_password(5)
     self.get_page(self.driver, self.path_good.URL_GOOD % self.good['ware_id'])
     self.element_click(self.driver, self.click_good.BTN_CALL_SELLER, change_page_url=False)
     popup = self.get_visitor_form_call_seller(self.driver)
     card_good = popup["good"].text
     self.input_str(popup["input_your_name"], buyer_name)
     self.input_str(popup["input_message"], msg_text)
     self.input_str(popup["input_email"], buyer_email)
     self.element_click(self.driver, popup["btn_send"], change_page_url=False)
     time.sleep(self.time_sleep)
     # Check new user in DB
     accounting_status_1 = 'WAIT_FOR_REGISTRATION'
     criteria = "email='%s' and display_name='%s'" % (buyer_email, buyer_name)
     new_buyer = databases.db1.accounting.get_user_by_criteria(accounting_status_1, criteria)
     self.assertEqual(1, len(new_buyer), "The user is not created in the DB")
     success_popup = self.get_visitor_form_call_success(self.driver)
     self.input_str(success_popup["input_password"], new_password)
     self.element_click(self.driver, success_popup["btn_reg"], change_page_url=False)
     time.sleep(self.time_sleep)
     accounting_status_2 = 'ENABLED'
     buyer = databases.db1.accounting.get_user_by_criteria(accounting_status_2, criteria)
     self.assertGreaterEqual(len(buyer), 1, "The user is not updated account status in the DB")
     self.element_is_present(self.driver, self.check_good.NOTIFY_REG_SUCCESS)
     self.get_page(self.driver, self.path_chat.URL_CHAT_WITH_USER % self.seller_id)
     messages = self.elements_is_present(self.driver, self.check_chat.LAST_MSG_WITH_SEPARATOR)
     self.assertIn(buyer_name, messages[0].text, "The message was not sent from me")
     self.assertIn(card_good, messages[0].text, "Card good in popup not equal card good in chat")
     self.assertIn(buyer_name, messages[1].text, "The message was not sent from me")
     self.assertIn(msg_text, messages[1].text, "Text message in popup not equal text message in chat")
Esempio n. 22
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"])
Esempio n. 23
0
 def setUp(cls):
     # Подготовка работы с selenium
     cls.driver = HelpLifeCycleCheckMethods.get_driver()
     cls.go_to_main_page(cls.driver)
     # Подготовка тестовых данных
     cls.name = common_utils.random_string()
     stamp = str(time.time())
     cls.email = '*****@*****.**' % stamp
     cls.password = AccountingMethods.get_default_password(5)
     # Переход на страницу регистрации по емайл
     cls.click_reg_and_auth(cls.driver)
     cls.reg_email = cls.get_reg_email_form(cls.driver)
     service_log.preparing_env(cls)
Esempio n. 24
0
    def auth(self, role):
        # Настройка окружения и вспомогательные параметры
        self.default_user_id = AccountingMethods.get_default_user_id(role=role)
        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]
        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)
        return self.user
Esempio n. 25
0
    def test_only_users_found(self):
        """
        Title: Если по запросу поиска не найдено товаров, но найдены пользователи - то отображается соответствующая заглушка.
        Description:
        * Текст заглушки "По запросу %запрос% товаров не найдено. Зато мы нашли [n] пользователей по этому запросу"
        * Счетчик кол-ва товаров равен нулю.
        * Я могу перейти на вкладку "Пользователи" по кнопке "Смотреть пользователей"
        """
        service_log.run(self)
        # Берем тестового продавца на магазине которого будут проводиться проверки
        test_seller_id = AccountingMethods.get_default_user_id(role='seller')
        user = databases.db1.accounting.get_user_by_account_id(test_seller_id)[0]

        # Подготавливаем тестовое мия
        test_name = common_utils.random_string(length=20)

        AccountingMethods.save_user_password(user_id=user["id"], hash_passwd=user["code_value"], salt=user["salt"])

        # Устанавливаем новый пароль для пользователя
        default_new_passwd = AccountingMethods.get_default_password()
        hash_res_new = generate_sha256(default_new_passwd, user["salt"])
        databases.db1.accounting.update_user_password(user["id"], hash_res_new)

        self.go_main(self.driver, phone=user["phone"], passwd=default_new_passwd, flag_auth=True)

        # Переход на настройки пользователя и изменение имени на тестовое
        self.get_page(self.driver, self.path_settings.PATH_PROFILE_SETTINGS)

        # Получаем объекты input оформ
        display_name = self.get_obj_input(self.driver, user["display_name"],
                                          path_block=self.path_settings.PATH_COMMON_INFO,
                                          path_input=self.input_settings.FORM_DISPLAY_NAME)

        self.clear_input_row(self.driver, display_name)  # Очистка введенных данных из input форм
        display_name.send_keys(test_name)  # Ввод тестовых данных

        # Получаем объект кнопки Сохранить и нажимаем Сохранить
        common_info_submit = self.get_submit_button(self.driver, self.path_settings.PATH_COMMON_INFO)
        self.element_click(self.driver, common_info_submit, change_page_url=False)
        self.go_to_main_page(self.driver)
        u_user = databases.db1.accounting.get_user_by_account_id(test_seller_id)[0]
        s_form = self.search_form(self.driver)
        self.input_str(s_form["input"], string=test_name)
        self.element_click(self.driver, s_form["btn"], change_page_url=True)
        l_menu = self.left_menu(self.driver)
        self.assertEqual(int(l_menu['count_goods']), 0, "Количество товаров не 0")
        self.assertEqual(int(l_menu['count_users']), 1, "Количество пользователей не 1")
        only_users_form = self.found_only_users(self.driver, test_name)
        self.element_click(self.driver, only_users_form['btn_to_users'])
        self.search_by_user(self.driver, u_user, l_menu['count_users'])
Esempio n. 26
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))
Esempio n. 27
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)
Esempio n. 28
0
    def test_as_buyer_to_good(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']))
        # Проверка текста в попапе
        obj_text = self.get_element_navigate(self.driver, self.check_good.POPUP_MSG_FROM_GOOD % '')
        str_msg_to_good = obj_text.text.encode('utf-8').replace(' ', '')
        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_good)
        #После нажатия на "На карточку" я остаюсь на карточке этого же товара
        self.assertEqual(self.data_good["good_id"], self.driver.current_url[self.driver.current_url.rfind('/') + 1:].
                         encode('utf-8'))
        # Кнопка "Связаться с продавцом" на карточке товара активна.
        self.get_element_navigate(self.driver, self.click_good.BTN_CALL_SELLER)
        # В чате с продавцом есть отправленное от меня сообщение и карточка товара. Проверить соответствие.
        self.get_page(self.driver, self.path_chat.URL_CHAT_WITH_USER % self.default_seller_id)
        last_msg = self.get_last_msg(self.driver)
        self.assertIn(good_str, last_msg, "Экспресс карточка='%s' не совпадает с последним сообщением='%s'" %
                      (good_str, last_msg))
        self.assertIn(str_msg_to_good, last_msg, "Стандартное сообщение о товаре='%s' не совпадает с последним "
                                                 "сообщением='%s'" % (str_msg_to_good, last_msg))
Esempio n. 29
0
    def setUp(cls):
        # Подготовка работы с selenium
        cls.driver = HelpLifeCycleCheckMethods.get_driver()
        service_log.preparing_env(cls)
        # Настройка окружения и вспомогательные параметры
        cls.default_user_id = AccountingMethods.get_default_user_id(role="buyer")
        databases.db1.accounting.update_account_details_by_criteria(cls.default_user_id, "locale='ru'")
        cls.user = databases.db1.accounting.get_user_by_account_id(cls.default_user_id)[0]
        AccountingMethods.save_user_password(user_id=cls.user["id"], hash_passwd=cls.user["code_value"])

        # Устанавливаем новый пароль для пользователя
        cls.default_new_passwd = AccountingMethods.get_default_password()
        hash_res_new = generate_sha256(cls.default_new_passwd, cls.user["salt"])
        databases.db1.accounting.update_user_password(cls.user["id"], hash_res_new)
        cls.go_main(cls.driver, phone=cls.user["phone"], passwd=cls.default_new_passwd, flag_auth=True)
        cls.get_page(cls.driver, cls.path_user_contact.URL_FAVORITES_USERS)
Esempio n. 30
0
    def setUp(cls):
        # Подготовка работы с selenium
        cls.driver = HelpLifeCycleCheckMethods.get_driver()
        service_log.preparing_env(cls)

        # Берем тестового продавца на магазине которого будут проводиться проверки
        cls.default_test_seller_id = AccountingMethods.get_default_user_id(role='seller_alien')
        cls.user = databases.db1.accounting.get_user_by_criteria(account_status='ENABLED',
                                                                 criteria='id=%s' % cls.default_test_seller_id)[0]
        AccountingMethods.save_user_password(user_id=cls.user["id"], hash_passwd=cls.user["code_value"])

        # Устанавливаем новый пароль для пользователя
        default_new_passwd = AccountingMethods.get_default_password()
        hash_res_new = generate_sha256(default_new_passwd, cls.user["salt"])
        databases.db1.accounting.update_user_password(cls.user["id"], hash_res_new)
        cls.go_main(cls.driver, phone=cls.user["phone"], passwd=default_new_passwd, flag_auth=True)