Рефакторинг кода: стандартизация форматирования и использование assert

- Добавлены пустые строки после docstrings
- Заменены raise AssertionError на assert
new_add_edit_user
Radislav 2025-12-10 13:54:34 +03:00
parent 2f2cf2c143
commit b2a32f70dc
1 changed files with 15 additions and 15 deletions

View File

@ -27,6 +27,7 @@ class SelectionBarComponent(BaseComponent):
locator_or_text: Локатор панели выбора значения (строка или объект Locator) locator_or_text: Локатор панели выбора значения (строка или объект Locator)
или текст для поиска или текст для поиска
""" """
super().__init__(page) super().__init__(page)
# Определяем локатор в зависимости от типа параметра # Определяем локатор в зависимости от типа параметра
@ -47,6 +48,7 @@ class SelectionBarComponent(BaseComponent):
# Действия: # Действия:
def clear_selections(self) -> None: def clear_selections(self) -> None:
"""Удаление ранее выбранных значений""" """Удаление ранее выбранных значений"""
selected_values = self.get_selected_values() selected_values = self.get_selected_values()
if len(selected_values) > 0: if len(selected_values) > 0:
clear_button_locator = self.selection_bar_locator.locator( clear_button_locator = self.selection_bar_locator.locator(
@ -60,6 +62,7 @@ class SelectionBarComponent(BaseComponent):
Returns: Returns:
list[str]: Список доступных опций list[str]: Список доступных опций
""" """
logger.info("Getting available options from dropdown list...") logger.info("Getting available options from dropdown list...")
# Открываем выпадающий список # Открываем выпадающий список
@ -82,11 +85,13 @@ class SelectionBarComponent(BaseComponent):
def get_selection_bar_title(self) -> str: def get_selection_bar_title(self) -> str:
"""Возвращает название панели выбора значения""" """Возвращает название панели выбора значения"""
title_locator = self.selection_bar_locator.locator(SelectionBarLocators.TITLE_LOCATOR) title_locator = self.selection_bar_locator.locator(SelectionBarLocators.TITLE_LOCATOR)
return title_locator.text_content() return title_locator.text_content()
def get_selected_values(self) -> list[str]: def get_selected_values(self) -> list[str]:
"""Возвращает список выбранных значений""" """Возвращает список выбранных значений"""
selected_values_locator = self.selection_bar_locator.locator( selected_values_locator = self.selection_bar_locator.locator(
SelectionBarLocators.PARAMETERS_SELECTED SelectionBarLocators.PARAMETERS_SELECTED
) )
@ -100,6 +105,7 @@ class SelectionBarComponent(BaseComponent):
field_name: Название поля для очистки field_name: Название поля для очистки
field_locator: Локатор поля combobox field_locator: Локатор поля combobox
""" """
logger.info(f"Clearing combobox field '{field_name}' using close button...") logger.info(f"Clearing combobox field '{field_name}' using close button...")
# Находим поле по локатору # Находим поле по локатору
@ -132,6 +138,7 @@ class SelectionBarComponent(BaseComponent):
def open_values_list(self) -> None: def open_values_list(self) -> None:
"""Открытие выпадающего списка путем нажатия на панель выбора значения""" """Открытие выпадающего списка путем нажатия на панель выбора значения"""
expect(self.selection_bar_locator).to_be_visible() expect(self.selection_bar_locator).to_be_visible()
# Проверяем, не открыт ли уже список # Проверяем, не открыт ли уже список
@ -149,26 +156,20 @@ class SelectionBarComponent(BaseComponent):
def select_value(self, name: str) -> None: def select_value(self, name: str) -> None:
"""Выбор значения из списка""" """Выбор значения из списка"""
self.selected_values_list.check_item_with_text(name) self.selected_values_list.check_item_with_text(name)
self.selected_values_list.click_item_with_text(name) self.selected_values_list.click_item_with_text(name)
def wait_for_timeout(self, timeout: int) -> None:
"""Ожидает указанное количество миллисекунд.
Args:
timeout: Время ожидания в миллисекундах
"""
self.page.wait_for_timeout(timeout)
# Проверки: # Проверки:
def check_field_highlighted_error(self, field_name: str, field_locator: str) -> None: def check_field_error_highlighted(self, field_name: str, field_locator: str) -> None:
"""Проверяет, что поле подсвечено цветом ошибки (валидация не пройдена). """Проверяет, что поле подсвечено цветом ошибки (валидация не пройдена).
Args: Args:
field_name: Название поля для проверки field_name: Название поля для проверки
field_locator: Локатор поля для проверки field_locator: Локатор поля для проверки
""" """
logger.info(f"Checking field '{field_name}' for error highlighting...") logger.info(f"Checking field '{field_name}' for error highlighting...")
field_element = self.page.locator(field_locator).first field_element = self.page.locator(field_locator).first
@ -183,18 +184,18 @@ class SelectionBarComponent(BaseComponent):
if parent_container.count() > 0: if parent_container.count() > 0:
has_error = parent_container.locator(SelectionBarLocators.ERROR_CSS_SELECTORS).count() > 0 has_error = parent_container.locator(SelectionBarLocators.ERROR_CSS_SELECTORS).count() > 0
if not has_error: assert has_error, f"Field '{field_name}' is not highlighted with error color"
raise AssertionError(f"Field '{field_name}' is not highlighted with error color")
logger.info(f"Field '{field_name}' is correctly highlighted with error color") logger.info(f"Field '{field_name}' is correctly highlighted with error color")
def check_field_not_highlighted_error(self, field_name: str, field_locator: str) -> None: def check_field_error_not_highlighted(self, field_name: str, field_locator: str) -> None:
"""Проверяет, что поле НЕ подсвечено цветом ошибки (валидация успешна). """Проверяет, что поле НЕ подсвечено цветом ошибки (валидация успешна).
Args: Args:
field_name: Название поля для проверки field_name: Название поля для проверки
field_locator: Локатор поля для проверки field_locator: Локатор поля для проверки
""" """
logger.info(f"Checking field '{field_name}' for absence of error highlighting...") logger.info(f"Checking field '{field_name}' for absence of error highlighting...")
field_element = self.page.locator(field_locator).first field_element = self.page.locator(field_locator).first
@ -205,11 +206,10 @@ class SelectionBarComponent(BaseComponent):
# Ищем родительский контейнер # Ищем родительский контейнер
parent_container = field_element.locator(SelectionBarLocators.INPUT_PARENT_CONTAINER).first parent_container = field_element.locator(SelectionBarLocators.INPUT_PARENT_CONTAINER).first
# Проверяем отсутствие классов ошибки с использованием локатора из SelectionBarLocators # Проверяем отсутствие классов ошибки
if parent_container.count() > 0: if parent_container.count() > 0:
has_error = parent_container.locator(SelectionBarLocators.ERROR_CSS_SELECTORS).count() > 0 has_error = parent_container.locator(SelectionBarLocators.ERROR_CSS_SELECTORS).count() > 0
if has_error: assert not has_error, f"Field '{field_name}' is highlighted with error"
raise AssertionError(f"Field '{field_name}' is highlighted with error")
logger.info(f"Field '{field_name}' correctly has no error highlighting") logger.info(f"Field '{field_name}' correctly has no error highlighting")