Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions components/announcement.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down Expand Up @@ -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))

Expand Down Expand Up @@ -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):
Expand Down Expand Up @@ -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):
Expand Down Expand Up @@ -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):
Expand Down
6 changes: 3 additions & 3 deletions components/cookie_banner.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down
30 changes: 15 additions & 15 deletions components/find_tutor.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,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):
Expand Down Expand Up @@ -148,9 +148,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()

Expand Down Expand Up @@ -202,12 +202,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("Проверяем страница Профайл репетитора содержит требующие детали")
Expand All @@ -227,9 +227,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
Expand Down
5 changes: 5 additions & 0 deletions components/header.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
4 changes: 1 addition & 3 deletions components/homepage.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
6 changes: 3 additions & 3 deletions components/login.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
6 changes: 3 additions & 3 deletions components/register.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
Expand Down
6 changes: 3 additions & 3 deletions tests/test_header.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
15 changes: 7 additions & 8 deletions tests/test_register.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import pytest
from faker import Faker
from Data.data import EMAIL_STUDENT_KM, PASSWORD_STUDENT_KM

fake = Faker()

Expand Down Expand Up @@ -40,17 +41,15 @@ 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")
Expand Down
Loading