79 lines
3.6 KiB
Python
79 lines
3.6 KiB
Python
"""Модуль контейнера для отображения событий системного журнала.
|
||
|
||
Содержит класс для работы с контейнером для отображения событий
|
||
системного журнала через 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"
|