async def test_published_article_visibility(session, users, data):
    """Публикация статьи и проверка ее видимости в списке
    """
    with allure.step('Войти под обычным пользователем'):
        user = [x for x in users if not x['is_superuser']][0]
        superuser = [x for x in users if x['is_superuser']][0]
        main_page = MainPage(session)
        await main_page.load()
        await main_page.login_if_not(user['username'], user['password'])
    with allure.step('Перейти в раздел "Статьи"'):
        articles_page = await main_page.open_articles_page()
    with allure.step('Создать новую статью'):
        view_page = await articles_page.create_article(**data[0])
    with allure.step(
            'Войти под суперпользователем, открыть страницу созданной статьи'):
        new_data = await view_page.get_data()
        await view_page.login_if_not(superuser['username'],
                                     superuser['password'])
        await view_page.reload_page()
    with allure.step('Нажать на кнопку редактирования статьи'):
        new_data['status'] = '2'
        edit_page = await view_page.open_edit_page()
    with allure.step('Изменить статус на "Опубликован"'):
        await edit_page.edit_article(**new_data)
    with allure.step('Перейти в раздел "Статьи"'):
        await articles_page.reload_page()
    with allure.step('Проверить что опубликованная статья появилась в списке'):
        article_list = await articles_page.get_articles()
        target = [
            x for x in article_list
            if x['id'] == new_data['id'] and x['title'] == new_data['title']
        ]
        assert len(target) == 1
def test_check_sort_by_default_popularity(web_browser):
    """ Make sure that sort by popularity by default value works fine"""
    page = MainPage(web_browser)
    page.search.send_keys("кружка")
    page.search_run_button.click()

    assert page.products_titles.count() > 0
def test_orders_page(web_browser):
    """Make sure that we can open this page"""
    page = MainPage(web_browser)
    page.orders_page.click()

    assert 'https://market.yandex.ru/my/orders' in page.get_current_url()
    assert page.h1.get_text() == 'Мои заказы'
def test_wishlist_page(web_browser):
    """Make sure that we can open this page"""
    page = MainPage(web_browser)
    page.wishlist_page.click()

    assert 'https://market.yandex.ru/my/wishlist' in page.get_current_url()
    assert page.h1.get_text() == 'Избранное'
Пример #5
0
    def setUp(self):
        browser = os.environ.get('BROWSER', os.environ['BROWSER'])

        self.driver = Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                             desired_capabilities=getattr(
                                 DesiredCapabilities, browser).copy())
        self.driver.maximize_window()

        self.MESSAGE_TEXT = "testNumber1"
        self.BOT_1_LOGIN = "******"
        self.BOT_2_LOGIN = "******"
        self.PASSWORD = os.environ['PASSWORD']
        self.CURRENT_DIALOG_URL = ""

        self.dialog_page = DialogPage(self.driver)
        self.message_page = MessagePage(self.driver)
        self.auth_page = AuthPage(self.driver)
        self.auth_page.sign_in(self.BOT_1_LOGIN, self.PASSWORD)
        self.main_page = MainPage(self.driver)
        self.main_page.open_messages()
        self.URL_OF_DIALOG_WITH_ME = "https://ok.ru/messages/575662066926"
        self.URL_OF_MESSAGES = "https://ok.ru/messages"

        self.NEED_TO_BLOCK_USER = False
        self.NEED_TO_CHANGE_ACC = False

        self.create_dialog()
        self.CURRENT_DIALOG_URL = self.driver.current_url
def test_footer_facebook(web_browser):
    """Make sure that we can open this page in footer"""
    page = MainPage(web_browser)
    page.facebook_footer.click()
    page.wait_page_loaded()

    assert 'https://www.facebook.com/yandex.market/' in page.get_current_url()
def test_pokupki_page(web_browser):
    """Make sure that page 'Покупки' works fine """
    page = MainPage(web_browser)
    page.pokupki.click()
    page.wait_page_loaded(3)

    assert 'https://pokupki.market.yandex.ru/' in page.get_current_url()
async def test_superuser_edit_foreign_article(session, users, data):
    """Изменение чужой статьи суперпользователем
    """
    with allure.step('Войти под обычным пользователем'):
        user = [x for x in users if not x['is_superuser']][0]
        superuser = [x for x in users if x['is_superuser']][0]
        main_page = MainPage(session)
        await main_page.load()
        await main_page.login_if_not(user['username'], user['password'])
    with allure.step('Перейти в раздел "Статьи"'):
        articles_page = await main_page.open_articles_page()
    with allure.step('Создать новую статью'):
        view_page = await articles_page.create_article(**data[0])
    with allure.step(
            'Войти под суперпользователем, открыть страницу созданной статьи'):
        new_data = await view_page.get_data()
        await view_page.login_if_not(superuser['username'],
                                     superuser['password'])
        await view_page.reload_page()
        new_data['title'] = data[1]['title']
        new_data['description'] = data[1]['description']
        new_data['text'] = data[1]['text']
    with allure.step('Нажать на кнопку редактирования статьи'):
        edit_page = await view_page.open_edit_page()
    with allure.step('Изменить статью, ввести новые данные'):
        await edit_page.edit_article(**new_data)
        await view_page.reload_page()
    with allure.step(
            'Проверить что данные измененной статьи соответствуют введенным'):
        article_page_data = await view_page.get_data()
        assert dict_common_fields_equal(article_page_data, new_data)
async def test_deferred_article_visibility(session, users, data):
    """Проверка видимости статьи со статусом "К отложенной публикации" в списке статей
    """
    with allure.step('Войти под обычным пользователем'):
        user = [x for x in users if not x['is_superuser']][0]
        superuser = [x for x in users if x['is_superuser']][0]
        main_page = MainPage(session)
        await main_page.load()
        await main_page.login_if_not(user['username'], user['password'])
    with allure.step('Перейти в раздел "Статьи"'):
        articles_page = await main_page.open_articles_page()
    with allure.step('Создать новую статью'):
        view_page = await articles_page.create_article(**data[0])
        new_data = await view_page.get_data()
    with allure.step('Войти под суперпользователем'):
        await view_page.login_if_not(superuser['username'],
                                     superuser['password'])
    with allure.step('Перейти на страницу просмотра созданной статьи'):
        await view_page.reload_page()
    with allure.step('Изменить статью, указать статус "В архиве"'):
        new_data['status'] = '5'
        edit_page = await view_page.open_edit_page()
        await edit_page.edit_article(**new_data)
    with allure.step('Перейти на страницу списка статей'):
        await articles_page.reload_page()
    with allure.step('Проверить что статья отсутствует в списке'):
        article_list = await articles_page.get_articles()
        target = [
            x for x in article_list
            if x['id'] == new_data['id'] and x['title'] == new_data['title']
        ]
        assert len(target) == 0
async def test_unlike_article(session, users, data):
    """Снятие лайка со статьи
    """
    with allure.step('Войти под суперпользователем'):
        superuser = [x for x in users if x['is_superuser']][0]
        main_page = MainPage(session)
        await main_page.load()
        await main_page.login_if_not(superuser['username'],
                                     superuser['password'])
    with allure.step('Перейти в раздел "Статьи"'):
        articles_page = await main_page.open_articles_page()
    with allure.step(
            'Найти статью с количеством лайков равным 0, или создать новую статью со статусом "Опубликован"'
    ):
        article_list = await articles_page.get_articles(
            _filter=lambda x: x['likes'] == 0)
        if len(article_list) == 0:
            data[0]['status'] = '2'
            view_page = await articles_page.create_article(**data[0])
        else:
            view_page = await articles_page.load_article(article_list[0]['id'])
    with allure.step(
            'Открыть статью, поставить лайк, нажав на кнопку "Одобряю!"'):
        if not await view_page.is_liked():
            await view_page.like_article()
    with allure.step(
            'Запомнить количество лайков, убрать лайк, нажав на кнопку "Сбросить одобрение"'
    ):
        old_like_count = await view_page.get_like_count()
        await view_page.unlike_article()
    with allure.step('Проверить что количество лайков уменьшилось на 1'):
        new_like_count = await view_page.get_like_count()
        assert new_like_count == old_like_count - 1
def test_life_streams_page(web_browser):
    """Make sure that page 'Трансляции' works fine """
    page = MainPage(web_browser)
    page.live_streams.click()
    page.wait_page_loaded(3)

    assert 'https://market.yandex.ru/live' in page.get_current_url()
Пример #12
0
    def test_save_api_key_to_the_file(self, browser):
        # Set up test case data
        EMAIL = '*****@*****.**'
        PASSWORD = '******'
        NOTICE = 'Signed in successfully.'

        with allure.step(
                'Open browser and navigate to the OpenWeather main page'):
            main_page = MainPage(browser)
            main_page.load()
        with allure.step('Click "Sign In" link'):
            main_page.click_sign_in_link()
        with allure.step('Sign in with email and password'):
            sign_in_page = SignInPage(browser)
            sign_in_page.sign_in(EMAIL, PASSWORD)
        with allure.step('Verify that "Logout" link is visible'):
            home_page = HomePage(browser)
            home_page.verify_logout_link_is_visible()
        with allure.step('Verify that right notice is displayed'):
            assert home_page.get_notice_text() == NOTICE
        with allure.step('Click on "API Keys" tab'):
            home_page.click_api_keys_tab()
        with allure.step('Save API Key to the file'):
            api_keys_page = ApiKeysPage(browser)
            api_keys_page.save_api_key_to_the_file()
def test_scores_page(web_browser):
    """Make sure that we can open this page"""
    page = MainPage(web_browser)
    page.scores_page.click()
    web_browser.switch_to.window(web_browser.window_handles[-1])
    page.wait_page_loaded()

    assert 'https://plus.yandex.ru/' in page.get_current_url()
def test_check_sort_by_date(web_browser):
    """ Make sure that sort by date works fine"""
    page = MainPage(web_browser)
    page.search.send_keys("кружка")
    page.search_run_button.click()
    page.sort_products_by_date.click()

    assert page.products_titles.count() > 0
def test_footer_instagram(web_browser):
    """Make sure that we can open this page in footer"""
    page = MainPage(web_browser)
    page.instagram_footer.click()
    web_browser.switch_to.window(web_browser.window_handles[-1])
    page.wait_page_loaded()

    assert 'https://www.instagram.com/yandex.market/' in page.get_current_url()
def test_footer_about(web_browser):
    """Make sure that we can open this page in footer"""
    page = MainPage(web_browser)
    page.about_footer.click()
    web_browser.switch_to.window(web_browser.window_handles[-1])
    page.wait_page_loaded()

    assert 'https://market.yandex.ru/about' in page.get_current_url()
def test_start_trade_page(web_browser):
    """Make sure that page 'Начать продавать на Маркете' works fine """
    page = MainPage(web_browser)
    page.start_trade_page.click()
    page.wait_page_loaded(3)

    assert 'https://partner.market.yandex.ru/welcome/partners' in page.get_current_url(
    )
def test_bytovaya_tekhnika_page(web_browser):
    """Make sure that page 'Бытовая техника' works fine """
    page = MainPage(web_browser)
    page.tehnica_bytovaia.click()
    page.wait_page_loaded(3)

    assert 'https://market.yandex.ru/catalog--bytovaia-tekhnika/54419' in page.get_current_url(
    )
    assert page.h1.get_text() == 'Бытовая техника'
def test_products_drinks_page(web_browser):
    """Make sure that page 'Продукты питания' works fine """
    page = MainPage(web_browser)
    page.products_drinks.click()
    page.wait_page_loaded(3)

    assert 'https://market.yandex.ru/catalog--produkty-napitki/54434' in page.get_current_url(
    )
    assert page.h1.get_text() == 'Продукты питания'
def test_catalog_pokupki_page(web_browser):
    """Make sure that we can open this page from catalog"""
    page = MainPage(web_browser)
    page.catalog_btn.click()
    page.wait_page_loaded(3)
    page.pokupki_in_catalog.click()
    page.wait_page_loaded()

    assert 'https://pokupki.market.yandex.ru' in page.get_current_url()
def test_footer_return(web_browser):
    """Make sure that we can open this page in footer"""
    page = MainPage(web_browser)
    page.return_footer.click()
    web_browser.switch_to.window(web_browser.window_handles[-1])
    page.wait_page_loaded()

    assert 'https://yandex.ru/support/market/return' in page.get_current_url()
    assert page.h1.get_text() == 'Возврат товара'
def test_footer_research_jobs(web_browser):
    """Make sure that we can open this page in footer"""
    page = MainPage(web_browser)
    page.research_footer.click()
    web_browser.switch_to.window(web_browser.window_handles[-1])
    page.wait_page_loaded()

    assert 'https://yandex.ru/jobs/usability' in page.get_current_url()
    assert page.h2.get_text() == 'Исследования для пользователей'
def test_electronica_page(web_browser):
    """Make sure that page 'Электроника' works fine """
    page = MainPage(web_browser)
    page.elektronika.click()
    page.wait_page_loaded(3)

    assert 'https://market.yandex.ru/catalog--elektronika/54440' in page.get_current_url(
    )
    assert page.h1.get_text() == 'Электроника'
def test_footer_choice_goods(web_browser):
    """Make sure that we can open this page in footer"""
    page = MainPage(web_browser)
    page.choice_goods_footer.click()
    web_browser.switch_to.window(web_browser.window_handles[-1])
    page.wait_page_loaded()

    assert 'https://yandex.ru/support/market/choice-goods' in page.get_current_url(
    )
def test_dacha_i_sad_page(web_browser):
    """Make sure that page 'Дача и сад' works fine """
    page = MainPage(web_browser)
    page.dacha_i_sad.click()
    page.wait_page_loaded(3)

    assert 'https://market.yandex.ru/catalog--dacha-sad-i-ogorod/54495' in page.get_current_url(
    )
    assert page.h1.get_text() == 'Дача и сад'
def test_detskie_products_page(web_browser):
    """Make sure that page 'Детские товары' works fine """
    page = MainPage(web_browser)
    page.detskie_tovary.click()
    page.wait_page_loaded(3)

    assert 'https://market.yandex.ru/catalog--detskie-tovary/54421' in page.get_current_url(
    )
    assert page.h1.get_text() == 'Детские товары'
Пример #27
0
    def test_recieve_message(self):
        main_page = MainPage(self.driver)
        self.send_message = main_page.send_message(self.USEREMAIL,
                                                   self.SUBJECT, self.TEXT)
        to, subject, text = main_page.check_recieve_message()

        self.assertEqual(self.USEREMAIL, to, "Useremail are not the same")
        self.assertEqual(self.SUBJECT, subject, "Subjects are not the same")
        self.assertEqual(self.TEXT, text, "Text are not the same")
def test_footer_delivery(web_browser):
    """Make sure that we can open this page in footer"""
    page = MainPage(web_browser)
    page.pay_delivery_footer.click()
    web_browser.switch_to.window(web_browser.window_handles[-1])
    page.wait_page_loaded()

    assert 'https://pokupki.market.yandex.ru/my/order/conditions' in page.get_current_url(
    )
    assert page.h1.get_text() == "Доставка Яндекса"
def test_check_search_with_incorrect_data(web_browser):
    """ Make sure that we got answer from website about our incorrect input"""
    page = MainPage(web_browser)
    # Enter incorrect data in search field
    page.search.send_keys("17adozzxss812")
    page.search_run_button.click()

    assert page.products_titles.count() < 1
    assert page.search_incorrect.get_text(
    ) == 'По вашему запросу ничего не найдено'
def test_footer_troubleshooting(web_browser):
    """Make sure that we can open this page in footer"""
    page = MainPage(web_browser)
    page.feedback_footer.click()
    web_browser.switch_to.window(web_browser.window_handles[-1])
    page.wait_page_loaded()

    assert 'https://yandex.ru/support/market/troubleshooting' in page.get_current_url(
    )
    assert page.h1.get_text() == "Решение проблем"