From 2af5e4bd93d7e2e2933a723b6263c84f7d77db5c Mon Sep 17 00:00:00 2001 From: AlexandrTimo Date: Tue, 21 Jan 2025 20:01:49 -0800 Subject: [PATCH 1/3] added TC_39.001.001.001-004 --- components/find_tutor.py | 69 ++++++++++++++++++++++++++++++++++++++++ tests/test_find_tutor.py | 52 ++++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+) diff --git a/components/find_tutor.py b/components/find_tutor.py index 83d4ee7e..71216c46 100644 --- a/components/find_tutor.py +++ b/components/find_tutor.py @@ -2,6 +2,7 @@ from playwright.sync_api import Page, expect from core.settings import list_url, tutors_list_url from faker import Faker +import time fake = Faker() @@ -255,3 +256,71 @@ def check_tutor_profile_btn_request_lesson_clickable_redirect(self): assert self.page.url == ( "http://tester:dslfjsdfblkhew%40122b1klbfw@testing.misleplav.ru/listings/lesson_request/1/" ) + + # TC_39.001.001.001 - 004 + @allure.step( + 'Проверяем доступность полей на странице "Запрос занятия!"' + ) + def verify_fields_to_be_visible_lesson_page(self): + req_id_title = ['div_id_first_name', 'div_id_last_name', 'div_id_telegram', 'div_id_phone', 'div_id_goal', 'div_id_count_of_lessons'] + for title in req_id_title: + expect(self.page.locator(f'//div[@id="{title}"]')).to_be_visible() + + @allure.step( + 'Проверяем кнопку "Отправить" на странице "Запрос занятия!"' + ) + def verify_btn_submit_and_pay_is_visible(self): + submit_btn = self.page.locator('//button[@type="submit"]') + assert submit_btn.is_visible() + + def click_btn_submit_request(self): + submit_btn = self.page.locator('//button[@type="submit"]') + submit_btn.click() + + def fill_fields(self, field_list): + for field in field_list: + locator = self.page.locator(f'//div/*[(self::input or self::textarea) and @id="{field}"]') + val = locator.evaluate("el => el.value") + if not val or not val.strip(): + tag_name = locator.evaluate("el => el.tagName.toLowerCase()") + if tag_name == "input": + input_type = locator.get_attribute("type") or "" + if input_type == "number": + locator.fill("33") + else: + locator.fill("TESTING") + elif tag_name == "textarea": + locator.fill("TESTING") + + @allure.step( + 'Проверяем позитивный кейс по заполнению обязательных полей на странице "Запрос занятия!" и переход на страницу "Dashboard' + ) + def verify_positive_require_fields_to_submit(self): + req_id_fields = ['id_first_name', 'id_last_name', 'id_telegram', 'id_phone', 'id_goal', 'id_count_of_lessons'] + self.fill_fields(req_id_fields) + self.click_btn_submit_request() + assert self.page.url == ( + "http://tester:dslfjsdfblkhew%40122b1klbfw@testing.misleplav.ru/dashboard/dashboard/7/" + ) + + @allure.step( + 'Проверяем отрицательный кейс по заполнению обязательных полей на странице "Запрос занятия!"' + ) + def verify_negative_require_fields_to_submit(self): + req_id_fields = ['id_first_name', 'id_last_name', 'id_telegram', 'id_phone', 'id_goal', 'id_count_of_lessons'] + for field_to_test in req_id_fields: + error_locator = self.page.locator(f'//strong[text()="Обязательное поле."]') + self.fill_fields(req_id_fields) + cleared_locator = self.page.locator(f'//div/*[(self::input or self::textarea) and @id="{field_to_test}"]') + cleared_locator.fill("") # Make it empty + self.click_btn_submit_request() # or however you submit the form + assert error_locator.is_visible(), ( + f"No 'Обязательное поле.' message for empty field {field_to_test}" + ) + + @allure.step( + 'Проверяем сообщение "Платеж успешно произведен. Скоро с вами свяжемся"' + ) + def verify_request_success_message(self): + btn_pay = self.page.locator('//a[text()="Добавить чек"]') + pass diff --git a/tests/test_find_tutor.py b/tests/test_find_tutor.py index 8313338b..16112c91 100644 --- a/tests/test_find_tutor.py +++ b/tests/test_find_tutor.py @@ -1,5 +1,6 @@ import allure from faker import Faker +import time fake = Faker() @@ -102,3 +103,54 @@ def test_tutor_profile_btn_request_lesson_clickable_redirect(login, header, find login.full_login("acc.python.test@gmail.com", "jUvJ5ZSxzdIr") find_tutor.check_btn_more_is_clickable() find_tutor.check_tutor_profile_btn_request_lesson_clickable_redirect() + + +@allure.title("TC_39.001.001.001") +@allure.link("https://github.com/RedRoverSchool/BookClubQA_Python_2024_fall/issues/417") +# TC_39.001.001.001 [Student ] Find a teacher > More > Lesson request > Verify fields required to be filled +def test_verify_fields_lesson_page(login, header, find_tutor): + header.visit() + login.full_login("acc.python.test@gmail.com", "jUvJ5ZSxzdIr") + find_tutor.check_btn_more_is_clickable() + find_tutor.check_tutor_profile_btn_request_lesson_clickable_redirect() + find_tutor.verify_fields_visibility_lesson_page() + + +@allure.title("TC_39.001.001.002") +@allure.link("https://github.com/RedRoverSchool/BookClubQA_Python_2024_fall/issues/417") +# TC_39.001.001.002 [Student ] Find a teacher > More > Lesson request > Verify the button "Оплатить и записаться" visible +def test_verify_btn_submit_and_pay(login, header, find_tutor): + header.visit() + login.full_login("acc.python.test@gmail.com", "jUvJ5ZSxzdIr") + find_tutor.check_btn_more_is_clickable() + find_tutor.check_tutor_profile_btn_request_lesson_clickable_redirect() + find_tutor.verify_btn_submit_and_pay_is_visible() + + +@allure.title("TC_39.001.001.003") +@allure.link("https://github.com/RedRoverSchool/BookClubQA_Python_2024_fall/issues/417") +# TC_39.001.001.003 [Student ] Find a teacher > More > Lesson request > Verify user ABLE to submit form only with require fields +def test_verify_positive_require_fields_to_submit(login, header, find_tutor): + header.visit() + login.full_login("acc.python.test@gmail.com", "jUvJ5ZSxzdIr") + find_tutor.check_btn_more_is_clickable() + find_tutor.check_tutor_profile_btn_request_lesson_clickable_redirect() + find_tutor.verify_positive_require_fields_to_submit() + + +@allure.title("TC_39.001.001.004") +@allure.link("https://github.com/RedRoverSchool/BookClubQA_Python_2024_fall/issues/417") +# TC_39.001.001.004 [Student ] Find a teacher > More > Lesson request > Verify user UNABLE to submit form if the require field missed +def test_verify_negative_require_fields_to_submit(login, header, find_tutor): + header.visit() + login.full_login("acc.python.test@gmail.com", "jUvJ5ZSxzdIr") + find_tutor.check_btn_more_is_clickable() + find_tutor.check_tutor_profile_btn_request_lesson_clickable_redirect() + find_tutor.verify_negative_require_fields_to_submit() + + +@allure.title("TC_39.001.001.005") +@allure.link("https://github.com/RedRoverSchool/BookClubQA_Python_2024_fall/issues/417") +# TC_39.001.001.006 [Student ] Find a teacher > More > Lesson request > Verify after submit the request the user receive success message : ""Платеж успешно произведен. Скоро с вами свяжемся"" +def test_verify_success_message_of_request(login, header, find_tutor): + pass \ No newline at end of file From 087d51dd3ffd3a4eb10ec495d33f8ec701c05d55 Mon Sep 17 00:00:00 2001 From: AlexandrTimo Date: Tue, 21 Jan 2025 20:45:02 -0800 Subject: [PATCH 2/3] modified TC_39.001.001.001 --- Data/data.py | 6 ++++++ components/announcement.py | 36 ++++++++++++++++++------------------ components/cookie_banner.py | 6 +++--- components/find_tutor.py | 30 +++++++++++++++--------------- components/header.py | 5 +++++ components/homepage.py | 4 +--- components/login.py | 6 +++--- components/register.py | 6 +++--- components/telegram_page.py | 4 ++-- obsolete_tests/register.py | 13 +++++++++++++ pytest.ini | 1 + tests/test_announcement.py | 17 +++++++++++------ tests/test_find_tutor.py | 4 ++-- tests/test_header.py | 6 +++--- tests/test_homepage.py | 1 - tests/test_register.py | 36 +++++++++++------------------------- 16 files changed, 97 insertions(+), 84 deletions(-) create mode 100644 obsolete_tests/register.py diff --git a/Data/data.py b/Data/data.py index 1607f451..e26787e4 100644 --- a/Data/data.py +++ b/Data/data.py @@ -5,15 +5,21 @@ from playwright.sync_api import Page fake = Faker() + valid_password = "Potter1$" valid_login = "Garry" invalid_login = "q-" invalid_password = "p===" +# with announcement EMAIL_TUTOR_KM = "tutor_testing@bk.ru" PASSWORD_TUTOR_KM = "I165TVAzghk8" +# without announcement +EMAIL_TUTOR_WA_KM = "tutor_test_misliplav@mail.ru" +PASSWORD_TUTOR_WA_KM = "iZ52toubKacm" + EMAIL_STUDENT_KM = "student-test-misliplav@mail.ru" PASSWORD_STUDENT_KM = "JXvNebAMsWb7" diff --git a/components/announcement.py b/components/announcement.py index 4bddc958..f0a2c3b8 100644 --- a/components/announcement.py +++ b/components/announcement.py @@ -81,9 +81,9 @@ def fill_out_experience(self, years_experience): def checkbox_degree(self): degree_checkbox = self.page.locator("#id_has_degree") degree_checkbox.check() - assert ( - degree_checkbox.is_checked() - ), "The 'has degree' checkbox should be checked" + assert degree_checkbox.is_checked(), ( + "The 'has degree' checkbox should be checked" + ) @allure.step("Вводим стоимость занятия") def fill_out_price(self, price): @@ -139,9 +139,9 @@ def verify_announcements_page_endpoint(self): current_url = self.page.url print(current_url) try: - assert ( - announcement_page_endpoint in current_url - ), f"Expected '{announcement_page_endpoint}' to be in '{current_url}'" + assert announcement_page_endpoint in current_url, ( + f"Expected '{announcement_page_endpoint}' to be in '{current_url}'" + ) except AssertionError as e: (print(e)) @@ -192,9 +192,9 @@ def click_view_announcement_button(self): def check_announcement_url_by_template(self): current_url = self.page.url pattern = r"^http://tester:dslfjsdfblkhew%40122b1klbfw@testing\.misleplav\.ru/listings/\d+/$" - assert re.match( - pattern, current_url - ), f"URL не соответствует ожидаемому шаблону: {current_url}" + assert re.match(pattern, current_url), ( + f"URL не соответствует ожидаемому шаблону: {current_url}" + ) @allure.step("Проверяем URL страницы редактирования объявления") def check_edit_announcement_page_url(self): @@ -244,9 +244,9 @@ def verify_required_fields_are_not_filled(self): '//strong[text()="Обязательное поле."]' ).count() print(f"Found {error_message_count} error messages.") - assert ( - error_message_count == 12 - ), f"Expected 12 error messages, but found {error_message_count}" + assert error_message_count == 12, ( + f"Expected 12 error messages, but found {error_message_count}" + ) @allure.step("Создаем объявление") def create_announcement(self): @@ -330,16 +330,16 @@ def verify_mandatory_fields_are_marked(self): for locator, field_name in fields_to_check: field_mark = self.page.locator(locator) - assert ( - field_mark.is_visible() - ), f"Отметка поля с локатором {field_name} не найдена" + assert field_mark.is_visible(), ( + f"Отметка поля с локатором {field_name} не найдена" + ) download_photo_title_text = self.page.get_by_text( "Рекомендуемое разрешение:" ).inner_text() - assert ( - "Обязательное поле." in download_photo_title_text - ), f"Текст 'Обязательное поле.' не найден в {download_photo_title_text}" + assert "Обязательное поле." in download_photo_title_text, ( + f"Текст 'Обязательное поле.' не найден в {download_photo_title_text}" + ) @allure.step("Отчищаем все обязательные поля") def clear_mandatory_fields(self): diff --git a/components/cookie_banner.py b/components/cookie_banner.py index 706dbb55..620bd822 100644 --- a/components/cookie_banner.py +++ b/components/cookie_banner.py @@ -48,9 +48,9 @@ def cookie_text_matches(self): ) actual_text = cookie_text.text_content() expected_text = "Мы используем куки для улучшения вашего опыта на нашем сайте. Вы можете управлять своими предпочтениями." - assert ( - actual_text == expected_text - ), f"Ожидается '{expected_text}', но получен '{actual_text}'" + assert actual_text == expected_text, ( + f"Ожидается '{expected_text}', но получен '{actual_text}'" + ) return True except TimeoutError: raise AssertionError("Cookie banner not found within 5 seconds") diff --git a/components/find_tutor.py b/components/find_tutor.py index 71216c46..2b5eb20e 100644 --- a/components/find_tutor.py +++ b/components/find_tutor.py @@ -67,9 +67,9 @@ def check_message_of_registration(self, expected_message): alert_locator = self.page.locator("//div[@role='alert']") self.page.wait_for_selector("//div[@role='alert']", timeout=7000) message = alert_locator.text_content() - assert ( - message.strip() == expected_message - ), f"Expected text is '{expected_message}', but received '{message.strip()}'" + assert message.strip() == expected_message, ( + f"Expected text is '{expected_message}', but received '{message.strip()}'" + ) @allure.step("Проверяем фильтр по категории") def check_filter_form(self): @@ -149,9 +149,9 @@ def check_experience_over_min_value(self, min_experience: int): "//p[contains(text(),'лет')]" ).inner_text() experience_value = int(experience_text.split()[0]) - assert ( - experience_value >= min_experience - ), f"The Teaching Experience {experience_value} less than expected minimum {min_experience}" + assert experience_value >= min_experience, ( + f"The Teaching Experience {experience_value} less than expected minimum {min_experience}" + ) self.page.go_back() @@ -203,12 +203,12 @@ def set_random_min_price(self, fake, min_value: int, max_value: int): def enter_min_experience(self, min_experience: int): experience_field = self.page.locator("#minExperience") experience_field.wait_for(state="visible", timeout=3000) - assert ( - experience_field.is_visible() - ), "The 'Minimum Teaching Experience' field is not visible." - assert ( - experience_field.is_enabled() - ), "The 'Minimum Teaching Experience' field is not enabled." + assert experience_field.is_visible(), ( + "The 'Minimum Teaching Experience' field is not visible." + ) + assert experience_field.is_enabled(), ( + "The 'Minimum Teaching Experience' field is not enabled." + ) experience_field.fill(str(min_experience)) @allure.step("Проверяем страница Профайл репетитора содержит требующие детали") @@ -228,9 +228,9 @@ def check_tutor_profile_has_require_details(self): count_ld_items = lesson_details.count() for i in range(count_ld_items): elem = lesson_details.nth(i) - assert ( - elem.is_visible() - ), f"Element Lesson details at index {i} is not visible" + assert elem.is_visible(), ( + f"Element Lesson details at index {i} is not visible" + ) elem_text = elem.inner_text().strip() assert elem_text != "", f"Text Lesson details at index {i} is empty" # Verify Tutor details diff --git a/components/header.py b/components/header.py index 67367d38..f6bcd050 100644 --- a/components/header.py +++ b/components/header.py @@ -241,3 +241,8 @@ def student_find_tutor_button_clickable_redirect(self): ).click() current_url = self.page.url assert current_url == find_tutor_url + + @allure.step("Клик на логотип 'Мыслеплав'") + def click_logo_misleplav(self): + logo = self.page.locator('a.navbar-brand.fw-bold.fs-4.ms-3[href="/"]') + logo.click() diff --git a/components/homepage.py b/components/homepage.py index 6cf9d2fe..2261d0c4 100644 --- a/components/homepage.py +++ b/components/homepage.py @@ -43,9 +43,7 @@ def check_info_welcome_container(self): @allure.step('Click on "Стать репетитором" button') def click_become_tutor_btn(self): - self.page.locator( - "div[class*='d-sm-flex'] a:text('Стать репетитором')" - ).first.click() + self.page.locator("(//a[text()='Стать репетитором'])[1]").first.click() @allure.step('Check "Преимущества для учеников" title') def check_preferences_for_students_title(self): diff --git a/components/login.py b/components/login.py index 7e0a56d0..5251b305 100644 --- a/components/login.py +++ b/components/login.py @@ -15,9 +15,9 @@ def __init__(self, page: Page): @allure.step("Проверяем URL страницы 'Логин'") def check_url_login_page(self, expected_part: str): current_url = self.page.url - assert ( - expected_part in current_url - ), f"Ожидалось, что '{expected_part}' будет частью '{current_url}'" + assert expected_part in current_url, ( + f"Ожидалось, что '{expected_part}' будет частью '{current_url}'" + ) @allure.step("Проверяем наличие кнопки 'Регистрация'") def check_title_of_registration(self): diff --git a/components/register.py b/components/register.py index 2bb1fea8..566ae487 100644 --- a/components/register.py +++ b/components/register.py @@ -43,9 +43,9 @@ def click_registration_button(self): @allure.step("Проверяем, что страница регистрации открыта") def verify_registration_page_opened(self): registration_title = self.page.locator("h1").inner_text() - assert ( - registration_title == "Регистрация" - ), f"Ожидался заголовок 'Регистрация', но найдено: {registration_title}" + assert registration_title == "Регистрация", ( + f"Ожидался заголовок 'Регистрация', но найдено: {registration_title}" + ) @allure.step("Создаем случайный пароль") def generate_valid_password(self): diff --git a/components/telegram_page.py b/components/telegram_page.py index 2dea1631..7e4ea38e 100644 --- a/components/telegram_page.py +++ b/components/telegram_page.py @@ -16,8 +16,8 @@ def check_telegram_channel_should_have_title_for_students(self): @allure.step("Открываем компонент More info about tutors from the main(body)") def tutors_info_should_be_opened(self): - expect(self.page).to_have_url("https://t.me/misleplav_tutors/11") + expect(self.page).to_have_url("https://t.me/misleplav_students/9") @allure.step("check_telegram_channel_should_have_title_for_tutor") def check_telegram_channel_should_have_title_for_tutors(self): - expect(self.page).to_have_title("Telegram: Contact @misleplav_tutors") + expect(self.page).to_have_title("Telegram: Contact @misleplav_students") diff --git a/obsolete_tests/register.py b/obsolete_tests/register.py new file mode 100644 index 00000000..b7fd4025 --- /dev/null +++ b/obsolete_tests/register.py @@ -0,0 +1,13 @@ +import pytest + + +@pytest.mark.skip(reason="Функциональность изменена, тест устарел.") +def test_check_placeholders_on_the_register_page(header, register): + header.visit() + header.click_registration_button() + register.check_username_placeholder_visibility() + register.check_username_placeholder_text() + register.check_password1_placeholder_visibility() + register.check_password1_placeholder_text() + register.check_password2_placeholder_visibility() + register.check_password2_placeholder_text() diff --git a/pytest.ini b/pytest.ini index a3e4fa95..66e12dce 100644 --- a/pytest.ini +++ b/pytest.ini @@ -1,6 +1,7 @@ [pytest] addopts = -s -vv -m "not slow" --alluredir=allure-results --video on --screenshot on + --ignore=obsolete_tests #addopts = -s -vv -m "not slow" --alluredir=allure-results --video on --screenshot on --headed --slowmo=3000 #for headed UI diff --git a/tests/test_announcement.py b/tests/test_announcement.py index 9fa7dc4b..05c27402 100644 --- a/tests/test_announcement.py +++ b/tests/test_announcement.py @@ -1,24 +1,29 @@ +import allure import pytest +from Data.data import EMAIL_TUTOR_KM, PASSWORD_TUTOR_KM, EMAIL_TUTOR_WA_KM, PASSWORD_TUTOR_WA_KM # TC_12.002.001| [Teacher] Create announcement > Create teacher announcement. # Verify the announcement is created after filling in all form fields with valid data#163 -@pytest.mark.skip(reason="Тест временно отключен после обновления 09.01.2025") +@pytest.mark.skip( + reason="Тест был признан неактуальным из-за обновления процесса регистрации, внедренного 09.01.2025." +) def test_create_announcement(header, announcement, login): header.visit() - login.full_login("zayatest55@gmail.com", "RM7tAgSYSh7X") + login.full_login(EMAIL_TUTOR_KM, PASSWORD_TUTOR_KM) header.click_create_announcement_btn() announcement.create_announcement() announcement.verify_announcements_page_endpoint() -# AT_12.002.002 | [Teacher] Create announcement > Create teacher announcement > -# Verify the announcement is not created when the empty form is submitted +@allure.label( + "TC_12.003.002|[Teacher] Verify the announcement is not created when the empty form is submitted" +) def test_teacher_announcement_blank_form_same_endpoint( header, login, create_announcement_page, announcement ): header.visit() - login.full_login("zpak7760@gmail.com", "q4fLncSv9Lgx") + login.full_login(EMAIL_TUTOR_WA_KM, PASSWORD_TUTOR_WA_KM) header.click_create_announcement_button() create_announcement_page.click_finalize_announcement_button() announcement.verify_required_fields_are_not_filled() @@ -45,7 +50,7 @@ def test_teacher_announcement_blank_form( def test_teacher_hiding_announcement(header, login, announcement): header.visit() header.click_login_button() - login.full_login("teacher-test@gmail.com", "Auah7bD2hS5Si7H") + login.full_login(EMAIL_TUTOR_KM, PASSWORD_TUTOR_KM) announcement.click_my_announcement_button() announcement.click_make_announcement_visible() announcement.check_button_text_visible() diff --git a/tests/test_find_tutor.py b/tests/test_find_tutor.py index 16112c91..b7653706 100644 --- a/tests/test_find_tutor.py +++ b/tests/test_find_tutor.py @@ -113,7 +113,7 @@ def test_verify_fields_lesson_page(login, header, find_tutor): login.full_login("acc.python.test@gmail.com", "jUvJ5ZSxzdIr") find_tutor.check_btn_more_is_clickable() find_tutor.check_tutor_profile_btn_request_lesson_clickable_redirect() - find_tutor.verify_fields_visibility_lesson_page() + find_tutor.verify_fields_to_be_visible_lesson_page() @allure.title("TC_39.001.001.002") @@ -147,7 +147,7 @@ def test_verify_negative_require_fields_to_submit(login, header, find_tutor): find_tutor.check_btn_more_is_clickable() find_tutor.check_tutor_profile_btn_request_lesson_clickable_redirect() find_tutor.verify_negative_require_fields_to_submit() - + @allure.title("TC_39.001.001.005") @allure.link("https://github.com/RedRoverSchool/BookClubQA_Python_2024_fall/issues/417") diff --git a/tests/test_header.py b/tests/test_header.py index 03d045a0..0cb66480 100644 --- a/tests/test_header.py +++ b/tests/test_header.py @@ -150,9 +150,9 @@ def test_header_home_btn_is_visible_on_all_pages_for_guest(header): header.page.goto(page_url) home_btn = header.header_home_btn_is_present() - assert ( - home_btn.is_visible() - ), f"Home button is not visible on the page with url {page_url}" + assert home_btn.is_visible(), ( + f"Home button is not visible on the page with url {page_url}" + ) # TC_31.002.001.001 Header-Student > Sign out > Visibility "Выйти" button diff --git a/tests/test_homepage.py b/tests/test_homepage.py index 3acb5394..e753bcd9 100644 --- a/tests/test_homepage.py +++ b/tests/test_homepage.py @@ -46,7 +46,6 @@ def test_more_btn_redirects_telegram_page_for_students(homepage, telegram_page): telegram_page.check_telegram_channel_should_have_title_for_students() -@pytest.mark.skip(reason="Тест временно отключен после обновления 09.01.2025") def test_more_btn_redirects_telegram_page_for_tutors(homepage, telegram_page): homepage.visit() homepage.click_more_button_at_the_bottom() diff --git a/tests/test_register.py b/tests/test_register.py index 7085b569..6fdbefce 100644 --- a/tests/test_register.py +++ b/tests/test_register.py @@ -1,5 +1,6 @@ import pytest from faker import Faker +from Data.data import EMAIL_STUDENT_KM, PASSWORD_STUDENT_KM fake = Faker() @@ -7,17 +8,16 @@ text = "Вы успешно зарегистрировались, а так же получаете бесплатный премиум на 3 дня!" -@pytest.mark.skip(reason="Тест временно отключен после обновления 09.01.2025") +@pytest.mark.skip(reason="Функциональность изменена, тест устарел. 09.01.2025") def test_register_as_tutor(header, register): header.visit() header.click_registration_button() register.header_should_contain_text("Регистрация") register.registration_new_user("tutor") - # header.create_listing_button_should_be_visible() # @pytest.mark.slow -@pytest.mark.skip(reason="Тест временно отключен после обновления 09.01.2025") +@pytest.mark.skip(reason="Функциональность изменена, тест устарел. 09.01.2025") def test_register_as_student(header, register): header.visit() header.click_registration_button() @@ -25,7 +25,7 @@ def test_register_as_student(header, register): register.registration_new_user("student") -@pytest.mark.skip(reason="Тест временно отключен после обновления 09.01.2025") +@pytest.mark.skip(reason="Функциональность изменена, тест устарел. 09.01.2025") def test_register_as_student_verify_success_message_text( homepage, register, find_tutor ): @@ -40,20 +40,18 @@ def test_register_as_student_verify_success_message_text( # TC_35.001.001.001 | Student >Become a teacher > Navigate to the "Стать репетитором" page -@pytest.mark.skip(reason="Тест временно отключен после обновления 09.01.2025") -def test_become_a_teacher_from_student_page(header, login, homepage, register): +def test_become_a_teacher_from_student_page( + header, login, homepage, register, find_tutor +): """Проверка перехода на страницу регистрации как репетитор из профиля студента.""" header.visit() - header.click_registration_button() - register.registration_new_user("student") - # header.click_login_button() - header.visit() - homepage.check_2_find_tutor_btns() + login.full_login(EMAIL_STUDENT_KM, PASSWORD_STUDENT_KM) + header.click_logo_misleplav() homepage.click_become_tutor_btn() - register.verify_registration_page_opened() + register.register_page_contains_register_btn() -@pytest.mark.skip(reason="Тест временно отключен после обновления 09.01.2025") +@pytest.mark.skip(reason="Функциональность изменена, тест устарел. 09.01.2025") def test_verify_successful_message_after_register_as_tutor( homepage, register, find_tutor ): @@ -63,15 +61,3 @@ def test_verify_successful_message_after_register_as_tutor( register.header_should_contain_text("Регистрация") register.registration_new_user("tutor") find_tutor.check_message_of_registration(text) - - -@pytest.mark.skip(reason="Тест временно отключен после обновления 09.01.2025") -def test_check_placeholders_on_the_register_page(header, register): - header.visit() - header.click_registration_button() - register.check_username_placeholder_visibility() - register.check_username_placeholder_text() - register.check_password1_placeholder_visibility() - register.check_password1_placeholder_text() - register.check_password2_placeholder_visibility() - register.check_password2_placeholder_text() From 32910f2bcb64d1ba90c18d460b9fec6634b00d9a Mon Sep 17 00:00:00 2001 From: AlexandrTimo Date: Tue, 21 Jan 2025 20:58:39 -0800 Subject: [PATCH 3/3] modified find_tutor --- components/find_tutor.py | 6 ++---- tests/test_find_tutor.py | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/components/find_tutor.py b/components/find_tutor.py index 2b5eb20e..917d55a9 100644 --- a/components/find_tutor.py +++ b/components/find_tutor.py @@ -2,7 +2,6 @@ from playwright.sync_api import Page, expect from core.settings import list_url, tutors_list_url from faker import Faker -import time fake = Faker() @@ -309,7 +308,7 @@ def verify_positive_require_fields_to_submit(self): def verify_negative_require_fields_to_submit(self): req_id_fields = ['id_first_name', 'id_last_name', 'id_telegram', 'id_phone', 'id_goal', 'id_count_of_lessons'] for field_to_test in req_id_fields: - error_locator = self.page.locator(f'//strong[text()="Обязательное поле."]') + error_locator = self.page.locator('//strong[text()="Обязательное поле."]') self.fill_fields(req_id_fields) cleared_locator = self.page.locator(f'//div/*[(self::input or self::textarea) and @id="{field_to_test}"]') cleared_locator.fill("") # Make it empty @@ -322,5 +321,4 @@ def verify_negative_require_fields_to_submit(self): 'Проверяем сообщение "Платеж успешно произведен. Скоро с вами свяжемся"' ) def verify_request_success_message(self): - btn_pay = self.page.locator('//a[text()="Добавить чек"]') - pass + pass \ No newline at end of file diff --git a/tests/test_find_tutor.py b/tests/test_find_tutor.py index b7653706..ccddeb07 100644 --- a/tests/test_find_tutor.py +++ b/tests/test_find_tutor.py @@ -1,6 +1,5 @@ import allure from faker import Faker -import time fake = Faker()