e-nms_qa_automation/components_derived/container_audit_events.py

123 lines
5.1 KiB
Python
Raw Permalink 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("AUDIT_EVENTS_CONTAINER")
class AuditEventsContainer(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.EVENTS_TOOLBAR_BUTTON), "view_events_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_type", "Тип")
events_filter.add_filtering_parameter("filter_role", "Роль")
events_filter.add_filtering_parameter("filter_name", "Имя")
events_filter.add_filtering_parameter("filter_ip", "ip")
# Действия:
# Проверки:
def check_content(self) -> None:
"""Проверяет содержимое контейнера для отображения событий аудита."""
expected_headers = [ 'ВРЕМЯ', 'ОПИСАНИЕ', 'ИДЕНТИФИКАТОР']
self.should_be_toolbar()
self.should_be_toolbar_buttons()
if not self.is_tab_active("view_events_button"):
self.click_tab_button("view_events_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("ip")
events_filter.click_close_button()
def check_content_security(self) -> None:
"""Проверяет содержимое контейнера для отображения событий безопасности."""
expected_headers = [ 'ВРЕМЯ', 'ОПИСАНИЕ', 'ИДЕНТИФИКАТОР', 'ТИП']
self.should_be_toolbar()
self.should_be_toolbar_buttons()
if not self.is_tab_active("view_events_button"):
self.click_tab_button("view_events_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("ip")
events_filter.click_close_button()
def should_be_toolbar_buttons(self) -> None:
"""Проверяет наличие и видимость кнопок тулбара."""
self.toolbar.check_button_visibility("filter_button")
self.toolbar.check_button_visibility("view_events_button")
self.toolbar.check_button_visibility("export_to_pdf_button")
self.toolbar.check_button_visibility("export_to_csv_button")