Skip to content

Sprint_6#1

Open
JaneM00 wants to merge 20 commits intomainfrom
Sprint_6
Open

Sprint_6#1
JaneM00 wants to merge 20 commits intomainfrom
Sprint_6

Conversation

@JaneM00
Copy link
Copy Markdown
Owner

@JaneM00 JaneM00 commented Jun 15, 2025

No description provided.

Comment thread pages/main_page.py

class MainPage(BasePage):
def open(self):
self.driver.get("https://qa-scooter.praktikum-services.ru/")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно лучше: url-адреса лучше хранить отдельно, они постоянно переиспользуются. Можно вынести в модуль urls

Comment thread tests/test_faq.py Outdated
from pages.main_page import MainPage

@pytest.mark.parametrize("question_key", ["question1", "question2"])
def test_faq_answer_display(driver, question_key):
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно исправить: Для корректного запуска тестов необходимо код с шагами теста поместить в тестовый метод (нейминг начинается с test_), а метод - в тестовый класс (нейминг начинается с Test). Модуль с тестами также должен начинаться с test_*. Необходимо привести к такому формату все модули внутри пакета tests

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не исправлено. Необходимо не только поправить нейминг модулей, но и поместить тестовые функции в классы

Comment thread tests/test_faq.py Outdated
import pytest
from pages.main_page import MainPage

@pytest.mark.parametrize("question_key", ["question1", "question2"])
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Необходимо исправить: по заданию необходимо проверить все вопросы

Comment thread tests/test_order.py Outdated
("Иван", "Иванов", "ул. Ленина д.1", "+79991112233"),
("Петр", "Петров", "пр. Мира д.10", "+79994445566")
])
def test_order_flow(driver, name, surname, address, phone):
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Необходимо исправить: по заданию необходимо проверить флоу заказа как через верхнюю кнопку, так и через нижнюю

Comment thread tests/test_order.py Outdated

# Проверка сообщения об успешном заказе
message = order_page.get_success_message()
assert "Заказ успешно создан" in message or message == "Ваш заказ начали готовить"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно лучше здесь и далее: тестовые данные и ожидаемые ответы лучше не хранить в теле/модулях теста. Лучше вынести их в модуль data, так их будет легче поддерживать

Comment thread tests/test_faq.py
@@ -0,0 +1,19 @@
import pytest

This comment was marked as resolved.

Comment thread pages/base_page.py
def __init__(self, driver):
self.driver = driver

def find(self, locator):
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Необходимо исправить: над каждым методом необходимо поставить allure-аннотацию step

Comment thread tests/test_faq.py Outdated
from pages.main_page import MainPage

@pytest.mark.parametrize("question_key", ["question1", "question2"])
def test_faq_answer_display(driver, question_key):
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не исправлено. Необходимо не только поправить нейминг модулей, но и поместить тестовые функции в классы

Comment thread tests/test_order.py Outdated
Comment on lines +17 to +20
if order_button == "top":
page.click_order_top()
else:
page.click_order_bottom()
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно исправить: использование условных блоков в теле теста лишает их атомарности. Можно попробовать, например, расширить количество параметров или их переработать дабы избежать этой ситуации

Comment thread tests/test_faq.py
Comment on lines +27 to +40
expected_texts = {
"question1": "Сутки — 400 рублей. Оплата курьеру — наличными или картой.",
"question2": ("Пока что у нас так: один заказ — один самокат. "
"Если хотите покататься с друзьями, можете просто сделать несколько заказов — один за другим."),
"question3": ("Допустим, вы оформляете заказ на 8 мая. Мы привозим самокат 8 мая в течение дня. "
"Отсчёт времени аренды начинается с момента, когда вы оплатите заказ курьеру. "
"Если мы привезли самокат 8 мая в 20:30, суточная аренда закончится 9 мая в 20:30."),
"question4": "Только начиная с завтрашнего дня. Но скоро станем расторопнее.",
"question5": ("Пока что нет! Но если что-то срочное — всегда можно позвонить в поддержку по красивому номеру 1010."),
"question6": ("Самокат приезжает к вам с полной зарядкой. Этого хватает на восемь суток — даже если будете кататься без передышек и во сне. "
"Зарядка не понадобится."),
"question7": ("Да, пока самокат не привезли. Штрафа не будет, объяснительной записки тоже не попросим. Все же свои."),
"question8": ("Да, обязательно. Всем самокатов! И Москве, и Московской области.")
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Можно лучше: во всех тестах лучше выносить тестовые данные во внешний модуль (например, data). Это позволит облегчить их поддержку

Comment thread tests/test_navigation.py Outdated
import pytest
from pages.main_page import MainPage

def test_click_logo_redirects_to_homepage(driver):
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Необходимо исправить здесь и далее: некоторые тесты всё ещё находятся вне классов

Comment thread tests/test_order.py Outdated
Comment on lines +16 to +21
if order_button_type == "top":
page.click_order_top()
elif order_button_type == "bottom":
page.click_order_bottom()
else:
pytest.fail(f"Неизвестный тип кнопки заказа: {order_button_type}")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нужно исправить: использование условных блоков в теле теста лишает их атомарности. Можно попробовать, например, расширить количество параметров или их переработать дабы избежать этой ситуации (например, заменить "top" на локатор верхней кнопки оформления заказа, а "bottom" - локатор нижней и передавать их в соответствующий метод Page

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants