Skip to content

Comments

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
Owner

@JaneM00 JaneM00 commented Jun 15, 2025

No description provided.


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

Choose a reason for hiding this comment

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

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

from pages.main_page import MainPage

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

Choose a reason for hiding this comment

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

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

Choose a reason for hiding this comment

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

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

import pytest
from pages.main_page import MainPage

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

Choose a reason for hiding this comment

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

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

("Иван", "Иванов", "ул. Ленина д.1", "+79991112233"),
("Петр", "Петров", "пр. Мира д.10", "+79994445566")
])
def test_order_flow(driver, name, surname, address, phone):

Choose a reason for hiding this comment

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

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


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

Choose a reason for hiding this comment

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

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

@@ -0,0 +1,19 @@
import pytest

This comment was marked as resolved.

def __init__(self, driver):
self.driver = driver

def find(self, locator):

Choose a reason for hiding this comment

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

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

from pages.main_page import MainPage

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

Choose a reason for hiding this comment

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

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

Comment on lines 17 to 20
if order_button == "top":
page.click_order_top()
else:
page.click_order_bottom()

Choose a reason for hiding this comment

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

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

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": ("Да, обязательно. Всем самокатов! И Москве, и Московской области.")
}

Choose a reason for hiding this comment

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

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

import pytest
from pages.main_page import MainPage

def test_click_logo_redirects_to_homepage(driver):

Choose a reason for hiding this comment

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

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

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}")

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