e-nms_qa_automation/components_derived/container_maintenance_event...

115 lines
5.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"""Модуль контейнера для отображения событий обслуживания.
Содержит класс для работы с контейнером для отображения событий
обслуживания через Playwright.
"""
from playwright.sync_api import Page, Locator
from tools.logger import get_logger
from locators.event_panel_locators import EventPanelLocators
from components.events_container_component import EventsContainerComponent
logger = get_logger("MAINTENANCE_EVENTS_CONTAINER")
class MaintenanceEventsContainer(EventsContainerComponent):
"""Компонент контейнера для отображения событий обслуживания.
Предоставляет методы для взаимодействия с элементами
контейнера для отображения событий системного журнала.
"""
def __init__(self, page: Page, locator: str | Locator):
"""Инициализирует компонент контейнера для отображения событий обслуживания.
Args:
page: Экземпляр страницы Playwright.
"""
super().__init__(page, locator)
toolbar_locator = self.get_locator(locator).locator(EventPanelLocators.TOOLBAR)
self.add_tab_to_toolbar(toolbar_locator.locator(EventPanelLocators.FILTER_TOOLBAR_BUTTON), "filter_button")
self.add_tab_to_toolbar(toolbar_locator.locator(EventPanelLocators.MAINTENANCE_TOOLBAR_BUTTON),
"maintenance_button")
self.add_tab_to_toolbar(toolbar_locator.locator(EventPanelLocators.PDF_TOOLBAR_BUTTON), "export_to_pdf_button")
self.add_tab_to_toolbar(toolbar_locator.locator(EventPanelLocators.CSV_TOOLBAR_BUTTON), "export_to_csv_button")
events_filter = self.get_events_filter()
events_filter.add_filtering_parameter("filter_date", "Дата")
events_filter.add_filtering_parameter("filter_event_name", "Наименование события")
events_filter.add_filtering_parameter("filter_type", "Тип")
events_filter.add_filtering_parameter("filter_status", "Состояние")
events_filter.add_filtering_parameter("filter_object", "Объект")
events_filter.add_filtering_parameter("filter_author", "Автор")
events_filter.add_filtering_parameter("filter_location", "Расположение")
# Действия:
# Проверки:
def check_content(self) -> None:
"""Проверяет содержимое контейнера для отображения событий обслуживания."""
expected_headers = ['ДАТА', 'НАИМЕНОВАНИЕ СОБЫТИЯ' ,'ТИП',
'СОСТОЯНИЕ', 'ОБЪЕКТ', 'АВТОР', 'РАСПОЛОЖЕНИЕ']
self.should_be_toolbar()
self.should_be_toolbar_buttons()
if not self.is_tab_active("maintenance_button"):
self.click_tab_button("maintenance_button")
self.wait_for_timeout(1000)
self.should_be_events_table()
events_table = self.get_events_table_content()
if len(events_table) == 0:
assert False, "The contents of the events table are missing"
self.check_events_table_headers(events_table[0], expected_headers)
if len(events_table) == 1:
logger.info("Table body is missing")
self.should_be_pagination_buttons()
events_filter = self.click_filter_button()
events_filter.check_content()
filter_date_bar = events_filter.get_filtering_parameter("filter_date")
filter_date_title = filter_date_bar.get_selection_bar_title()
assert filter_date_title == "Дата", "Filtering parameter bar 'Дата' is missing"
filter_event_name_bar = events_filter.get_filtering_parameter("filter_event_name")
filter_event_name_title = filter_event_name_bar.get_selection_bar_title()
assert filter_event_name_title == "Наименование события", \
"Filtering parameter bar 'Наименование события' is missing"
filter_type_bar = events_filter.get_filtering_parameter("filter_type")
filter_type_title = filter_type_bar.get_selection_bar_title()
assert filter_type_title == "Тип", "Filtering parameter bar 'Тип' is missing"
filter_status_bar = events_filter.get_filtering_parameter("filter_status")
filter_status_title = filter_status_bar.get_selection_bar_title()
assert filter_status_title == "Состояние", "Filtering parameter bar 'Состояние' is missing"
filter_object_bar = events_filter.get_filtering_parameter("filter_object")
filter_object_title = filter_object_bar.get_selection_bar_title()
assert filter_object_title == "Объект", "Filtering parameter bar 'Объект' is missing"
filter_author_bar = events_filter.get_filtering_parameter("filter_author")
filter_author_title = filter_author_bar.get_selection_bar_title()
assert filter_author_title == "Автор", "Filtering parameter bar 'Автор' is missing"
filter_location_bar = events_filter.get_filtering_parameter("filter_location")
filter_location_title = filter_location_bar.get_selection_bar_title()
assert filter_location_title == "Расположение", "Filtering parameter bar 'Расположение' is missing"
def should_be_toolbar_buttons(self) -> None:
"""Проверяет наличие и видимость кнопок тулбара."""
self.toolbar.check_button_visibility("filter_button")
self.toolbar.check_button_visibility("maintenance_button")
self.toolbar.check_button_visibility("export_to_pdf_button")
self.toolbar.check_button_visibility("export_to_csv_button")