e-nms_qa_automation/components_derived/container_maintenance_event...

96 lines
4.6 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()
events_filter.should_be_filtering_parameter("Дата")
events_filter.should_be_filtering_parameter("Наименование события")
events_filter.should_be_filtering_parameter("Тип")
events_filter.should_be_filtering_parameter("Состояние")
events_filter.should_be_filtering_parameter("Объект")
events_filter.should_be_filtering_parameter("Автор")
events_filter.should_be_filtering_parameter("Расположение")
events_filter.click_close_button()
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")