Рефакторинг кода: стандартизация форматирования и использование assert
- Добавлены пустые строки после docstrings - Заменены raise AssertionError на assertnew_add_edit_user
parent
2f2cf2c143
commit
b2a32f70dc
|
|
@ -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")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue