Добавлен тест пагинации для панели отображения событий системного журнала
parent
e505534a1e
commit
93005b6cfe
|
|
@ -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:
|
||||||
"""Получение номера текущего набора данных"""
|
"""Получение номера текущего набора данных"""
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue