"""Модуль контейнера для отображения событий системного журнала. Содержит класс для работы с контейнером для отображения событий системного журнала через Playwright. """ from playwright.sync_api import Page, Locator from tools.logger import get_logger from locators.toolbar_locators import ToolbarLocators from components.events_container_component import EventsContainerComponent logger = get_logger("SYSTEM_LOG_EVENTS_CONTAINER") class SystemLogEventsContainer(EventsContainerComponent): """Компонент контейнера для отображения событий системного журнала. Предоставляет методы для взаимодействия с элементами контейнера для отображения событий системного журнала. """ def __init__(self, page: Page, locator: str | Locator): """Инициализирует компонент контейнера для отображения событий системного журнала. Args: page: Экземпляр страницы Playwright. """ super().__init__(page, locator) self.add_tab_to_toolbar(ToolbarLocators.TABS, "events") sidebar_filter = self.get_sidebar_filter() sidebar_filter.add_filtering_parameter("filter_type", "Тип") sidebar_filter.add_filtering_parameter("filter_strictness", "Критичность") sidebar_filter.add_filtering_parameter("filter_host", "Объект") # Действия: # Проверки: def check_content(self) -> None: """Проверяет содержимое контейнера для отображения событий системного журнала.""" expected_headers = ['ТИП', 'ВРЕМЯ', 'КРИТИЧНОСТЬ', 'ОБЪЕКТ', 'ОПИСАНИЕ'] self.should_be_toolbar() self.should_be_base_toolbar_buttons() events_tab = self.get_toolbar_tab_button("events") events_tab_text = events_tab.get_text(0) assert events_tab_text.find("События") != -1, "Tab button with text События is missing on toolbar" 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: assert False, "Table body is missing" self.should_be_pagination_buttons() sidebar_filter = self.click_filter_button() sidebar_filter.check_content() filter_type_bar = sidebar_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_strictness_bar = sidebar_filter.get_filtering_parameter("filter_strictness") filter_strictness_title = filter_strictness_bar.get_selection_bar_title() assert filter_strictness_title == "Критичность", "Filtering parameter bar 'Критичность' is missing" filter_host_bar = sidebar_filter.get_filtering_parameter("filter_host") filter_host_title = filter_host_bar.get_selection_bar_title() assert filter_host_title == "Объект", "Filtering parameter bar 'Объект' is missing"