diff --git a/Data/data.py b/Data/data.py index e26787e4..3527eb8c 100644 --- a/Data/data.py +++ b/Data/data.py @@ -16,6 +16,9 @@ EMAIL_TUTOR_KM = "tutor_testing@bk.ru" PASSWORD_TUTOR_KM = "I165TVAzghk8" +EMAIL_TUTOR_MV = "teacher-test@yopmail.com" +PASSWORD_TUTOR_MV = "5uR94zLhF80r" + # without announcement EMAIL_TUTOR_WA_KM = "tutor_test_misliplav@mail.ru" PASSWORD_TUTOR_WA_KM = "iZ52toubKacm" diff --git a/components/announcement.py b/components/announcement.py index f0a2c3b8..db1dc2c9 100644 --- a/components/announcement.py +++ b/components/announcement.py @@ -153,32 +153,28 @@ def click_my_announcement_button(self): ) @allure.step("Кликаем на кнопку 'Сделать объявление видимым для учеников'") - def click_make_announcement_invisible(self): + def click_make_announcement_visible(self): self.page.get_by_role( - "link", name="Сделать обьявление видимым для учеников" + "link", name="Сделать видимым " ).click() - @allure.step( - "Проверяем изменение текста кнопки на 'Сделать объявление невидимым для учеников'" - ) - def check_button_text_invisible(self): - expect(self.page.get_by_role("main")).to_contain_text( - "Сделать обьявление невидимым для учеников" - ) - - @allure.step("Кликаем на кнопку 'Сделать объявление невидимым для учеников'") - def click_make_announcement_visible(self): + @allure.step("Кликаем на кнопку 'Сделать невидимым'") + def click_make_announcement_invisible(self): self.page.get_by_role( - "link", name="Сделать обьявление невидимым для учеников" + "link", name="Сделать невидимым" ).click() - @allure.step( - "Проверяем изменение текста кнопки на 'Сделать объявление невидимым для учеников'" - ) - def check_button_text_visible(self): - expect(self.page.get_by_role("main")).to_contain_text( - "Сделать обьявление видимым для учеников" - ) + @allure.step("Проверяем отсутствие скрытого объявления в листинге") + def verify_announcement_hiding(self, footer, header, announcement): + collected_announcement =[] + footer.open_find_tutor_page() + announcements= self.page.locator('//div[@class="p-3 flex-grow-1 d-flex flex-column"]//h5') + announcements_count = announcements.count() + for i in range(announcements_count): + announcement_text = announcements.nth(i).inner_text() + collected_announcement.append(announcement_text) + print(f"Relevant announcements: {collected_announcement}") + assert "Leeloo Minai" not in collected_announcement, "Объявление Leeloo Minai отображается в листинге" @allure.step("Кликаем кнопку 'Редактировать объявление'") def click_edit_announcement_button(self): diff --git a/tests/test_announcement.py b/tests/test_announcement.py index 05c27402..3c550bcd 100644 --- a/tests/test_announcement.py +++ b/tests/test_announcement.py @@ -1,6 +1,6 @@ import allure import pytest -from Data.data import EMAIL_TUTOR_KM, PASSWORD_TUTOR_KM, EMAIL_TUTOR_WA_KM, PASSWORD_TUTOR_WA_KM +from Data.data import EMAIL_TUTOR_KM, PASSWORD_TUTOR_KM, EMAIL_TUTOR_WA_KM, PASSWORD_TUTOR_WA_KM, EMAIL_TUTOR_MV, PASSWORD_TUTOR_MV # TC_12.002.001| [Teacher] Create announcement > Create teacher announcement. @@ -43,33 +43,20 @@ def test_teacher_announcement_blank_form( announcement.verify_number_of_announcements_is_zero() -# TC_15.001.005.001 | Teacher Profile > Hiding announcement > Name changes and teacher's announcement became invisible. -# Check that option “Сделать объявление невидимым для учеников” switches to the option -# "Сделать объявление видимым для учеников" and Teacher's announcement became invisible from the list. -@pytest.mark.skip("needs to be fixed") -def test_teacher_hiding_announcement(header, login, announcement): +# TC_13.001.005 | [Teacher]My_announcement > Verify the ability to hide the ad from students +def test_teacher_hiding_announcement(header, login, announcement, footer): header.visit() header.click_login_button() - login.full_login(EMAIL_TUTOR_KM, PASSWORD_TUTOR_KM) - announcement.click_my_announcement_button() - announcement.click_make_announcement_visible() - announcement.check_button_text_visible() - - # Removed try block for check_teacher_announcement_invisible - try: - announcement.check_teacher_announcement_invisible() - except Exception as e: - print(f"Error in check_teacher_announcement_invisible: {e}") - + login.full_login(EMAIL_TUTOR_MV, PASSWORD_TUTOR_MV) announcement.click_my_announcement_button() announcement.click_make_announcement_invisible() - announcement.check_button_text_invisible() + announcement.verify_announcement_hiding(footer, header, announcement) + header.click_my_announcement_button() + announcement.click_make_announcement_visible() # TC_15.001.002 | Header-Teacher > My announcements ("Мои объявления") when User has an announcement > # Verify the teacher's name in the announcement - - @pytest.mark.skip(reason="не прошёл CI после изменений 26.12.2024") def test_teacher_announcement_name( header, register, my_teachers, create_announcement_page, announcement @@ -87,7 +74,7 @@ def test_teacher_announcement_name( # TC_13.001.001 | [Teacher]My_announcement > "Просмотреть" button redirection check def test_view_announcement_btn_redirection(header, announcement, login): header.visit() - login.full_login("teacher-test@yopmail.com", "5uR94zLhF80r") + login.full_login(EMAIL_TUTOR_MV, PASSWORD_TUTOR_MV) announcement.click_my_announcement_button() announcement.click_view_announcement_button() announcement.check_announcement_url_by_template() @@ -96,7 +83,7 @@ def test_view_announcement_btn_redirection(header, announcement, login): # TC_13.001.003 | [Teacher]My_announcement > "Редактировать" button redirection check def test_edit_announcement_btn_redirection(header, announcement, login): header.visit() - login.full_login("teacher-test@yopmail.com", "5uR94zLhF80r") + login.full_login(EMAIL_TUTOR_MV, PASSWORD_TUTOR_MV) announcement.click_my_announcement_button() announcement.click_edit_announcement_button() announcement.check_edit_announcement_page_url() @@ -105,7 +92,7 @@ def test_edit_announcement_btn_redirection(header, announcement, login): # TC_13.001.004 | [Teacher]My_announcement > Verify the ability to see detailed ad statistics def test_announcement_detailed_info(header, announcement, login): header.visit() - login.full_login("teacher-test@yopmail.com", "5uR94zLhF80r") + login.full_login(EMAIL_TUTOR_MV, PASSWORD_TUTOR_MV) announcement.click_my_announcement_button() announcement.check_view_counter_visible() @@ -120,8 +107,6 @@ def test_redirection_to_my_announcement_page(header, announcement, login): # TC_12.002.003 | [Teacher] Create announcement > Create teacher announcement > # Verify the announcement is created after filling in required form fields with valid data #313 - - @pytest.mark.skip(reason="Тест временно отключен после обновления 09.01.2025") def test_create_announcement_with_only_required_fields(header, announcement, register): # email, password = user_registration_cleanup @@ -136,7 +121,7 @@ def test_create_announcement_with_only_required_fields(header, announcement, reg # TC_13.002.001| [Teacher] My announcement > Edit announcement > Mandatory fields are marked with "*" def test_mandatory_field_marks_on_edit_announcement_page(header, login, announcement): header.visit() - login.full_login("teacher-test@yopmail.com", "5uR94zLhF80r") + login.full_login(EMAIL_TUTOR_MV, PASSWORD_TUTOR_MV) announcement.click_my_announcement_button() announcement.click_edit_announcement_button() announcement.verify_mandatory_fields_are_marked() @@ -145,7 +130,7 @@ def test_mandatory_field_marks_on_edit_announcement_page(header, login, announce # TC_13.007.002| [Teacher] My announcement > Edit announcement > Mandatory fields are required to be filled def test_mandatory_fields_on_edit_announcement_page(header, login, announcement): header.visit() - login.full_login("teacher-test@yopmail.com", "5uR94zLhF80r") + login.full_login(EMAIL_TUTOR_MV, PASSWORD_TUTOR_MV) announcement.click_my_announcement_button() announcement.click_edit_announcement_button() announcement.clear_mandatory_fields() diff --git a/tests/test_header.py b/tests/test_header.py index 0cb66480..6f0a447f 100644 --- a/tests/test_header.py +++ b/tests/test_header.py @@ -1,5 +1,7 @@ import allure import pytest + +from Data.data import EMAIL_TUTOR_MV, PASSWORD_TUTOR_MV from core.settings import pages_urls_for_guest from core.settings import site_pages_urls from playwright.sync_api import Page @@ -196,7 +198,7 @@ def test_hover_exit_button_for_student_color_check(header, register): def test_profile_btn_visibility(header, login, data, page: Page): """Проверка видимости кнопки 'Профиль'""" header.visit() - login.full_login("teacher-test@yopmail.com", "5uR94zLhF80r") + login.full_login(EMAIL_TUTOR_MV, PASSWORD_TUTOR_MV) page_url = data["url"] page.goto(page_url) header.profile_button_should_be_visible() @@ -209,7 +211,7 @@ def test_profile_btn_visibility(header, login, data, page: Page): def test_profile_btn_hover(header, login, data, page: Page): """Проверка смены цвета кнопки 'Профиль' при наведении на нее курсора""" header.visit() - login.full_login("teacher-test@yopmail.com", "5uR94zLhF80r") + login.full_login(EMAIL_TUTOR_MV, PASSWORD_TUTOR_MV) page_url = data["url"] page.goto(page_url) header.hover_profile_btn_color_check() @@ -222,7 +224,7 @@ def test_profile_btn_hover(header, login, data, page: Page): def test_profile_btn_redirection(header, user_profile, login, data, page: Page): """Проверка перенаправления на страницу профиля пользователя после нажатия кнопки 'Профиль'""" header.visit() - login.full_login("teacher-test@yopmail.com", "5uR94zLhF80r") + login.full_login(EMAIL_TUTOR_MV, PASSWORD_TUTOR_MV) page_url = data["url"] page.goto(page_url) header.click_profile_button()