e-nms_qa_automation/components_derived/container_system_log_events.py

79 lines
3.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.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"