Добавлен тест пагинации для панели отображения событий системного журнала

pull/1/head
nsubbot 2025-09-25 16:16:18 +03:00
parent e505534a1e
commit 93005b6cfe
2 changed files with 79 additions and 4 deletions

View File

@ -1,10 +1,10 @@
"""Модуль компонента контейнера с перечнем событий. Содержит класс для работы с контейнерами, """Модуль компонента контейнера с перечнем событий. Содержит класс для работы с контейнерами,
их элементами и проверками.""" их элементами и проверками."""
from datetime import datetime
from playwright.sync_api import Page, Locator from playwright.sync_api import Page, Locator
from tools.logger import get_logger from tools.logger import get_logger
from locators.toolbar_locators import ToolbarLocators from locators.toolbar_locators import ToolbarLocators
# from locators.table_locators import TableLocators
from elements.tooltip_button_element import TooltipButton from elements.tooltip_button_element import TooltipButton
from elements.tab_button_element import TabButton from elements.tab_button_element import TabButton
from elements.button_element import Button from elements.button_element import Button
@ -74,7 +74,7 @@ class EventsContainerComponent(BaseComponent):
self.chevron_right.click() self.chevron_right.click()
def click_event_table_header_arrow(self, index) -> None: def click_event_table_header_arrow(self, index: int) -> None:
""" Нажатие кнопки-стрелочки вверх/вниз в ячейке заголовка таблицы """ Нажатие кнопки-стрелочки вверх/вниз в ячейке заголовка таблицы
Args: Args:
@ -83,6 +83,15 @@ class EventsContainerComponent(BaseComponent):
loc = self.container_locator.locator(self.table_locator) loc = self.container_locator.locator(self.table_locator)
self.events_table.click_arrow_button(loc, index) self.events_table.click_arrow_button(loc, index)
def datetime2timestamp(self, date_string: str) -> float:
""" Конвертация строкового представления даты и времени в Unix timestamp """
# Формат, соответствующий строке с датой и временем
format_string = "%d.%m.%Y %H:%M:%S"
date_object = datetime.strptime(date_string, format_string)
return date_object.timestamp()
def get_current_data_set_number(self) -> int: def get_current_data_set_number(self) -> int:
"""Получение номера текущего набора данных""" """Получение номера текущего набора данных"""

View File

@ -4,7 +4,7 @@
контейнера для отображения событий системного журнала. контейнера для отображения событий системного журнала.
""" """
# import pytest import pytest
from playwright.sync_api import Page from playwright.sync_api import Page
from pages.main_page import MainPage from pages.main_page import MainPage
from pages.login_page import LoginPage from pages.login_page import LoginPage
@ -128,7 +128,6 @@ class TestSystemLogEventsContainer:
# Проверка видимости первой строки после прокрутки # Проверка видимости первой строки после прокрутки
system_log_events_container.check_events_table_first_row_visibility() system_log_events_container.check_events_table_first_row_visibility()
# @pytest.mark.develop
def test_events_table_column_sorting(self, browser: Page): def test_events_table_column_sorting(self, browser: Page):
"""Проверяет сортировку колонки 'Время' в таблице событий. """Проверяет сортировку колонки 'Время' в таблице событий.
@ -162,3 +161,70 @@ class TestSystemLogEventsContainer:
assert state == "down", "Arrow button should be down" assert state == "down", "Arrow button should be down"
is_descending_order = system_log_events_container.check_events_table_column_descending_order(index) is_descending_order = system_log_events_container.check_events_table_column_descending_order(index)
assert is_descending_order, "Column data should be in descending order" assert is_descending_order, "Column data should be in descending order"
@pytest.mark.develop
def test_events_table_pagination(self, browser: Page):
"""Проверяет возможность пагинации таблицы событий.
Args:
browser: Экземпляр страницы Playwright.
"""
lp = LoginPage(browser)
lp.do_login()
mp = MainPage(browser)
mp.should_be_event_panel()
system_log_events_container = mp.click_events_panel_system_log_tab()
system_log_events_container.should_be_pagination_buttons()
# Проверка начального состояния
is_chevron_left_disabled = system_log_events_container.is_chevron_left_disabled()
assert is_chevron_left_disabled, "Arrow Left button should be disabled"
is_chevron_right_disabled = system_log_events_container.is_chevron_right_disabled()
assert not is_chevron_right_disabled, "Arrow Right button should be enabled"
current_number = system_log_events_container.get_current_data_set_number()
assert current_number == 1, "The first page should be number one"
# загрузка страниц от начала и до конца
# to_do: проверка, что происходит обновление содержимого таблицы
counter = 1
while not is_chevron_right_disabled:
system_log_events_container.click_chevron_right()
counter += 1
is_chevron_left_disabled = system_log_events_container.is_chevron_left_disabled()
assert not is_chevron_left_disabled, "Arrow Left button should be enabled"
is_chevron_right_disabled = system_log_events_container.is_chevron_right_disabled()
current_number = system_log_events_container.get_current_data_set_number()
assert current_number == counter, f"Expected page number {counter} is not equal actual {current_number}"
# загрузка страниц от конца к началу
# to_do: проверка, что происходит обновление содержимого таблицы
while not is_chevron_left_disabled:
system_log_events_container.click_chevron_left()
counter -= 1
is_chevron_left_disabled = system_log_events_container.is_chevron_left_disabled()
is_chevron_right_disabled = system_log_events_container.is_chevron_right_disabled()
assert not is_chevron_right_disabled, "Arrow Right button should be enabled"
current_number = system_log_events_container.get_current_data_set_number()
assert current_number == counter, f"Expected page number {counter} is not equal actual {current_number}"
# Проверка возврата к начальному состоянию
is_chevron_left_disabled = system_log_events_container.is_chevron_left_disabled()
assert is_chevron_left_disabled, "Arrow Left button should be disabled"
is_chevron_right_disabled = system_log_events_container.is_chevron_right_disabled()
assert not is_chevron_right_disabled, "Arrow Right button should be enabled"
current_number = system_log_events_container.get_current_data_set_number()
assert current_number == 1, "The first page should be number one"