Актуализирован тест пагинации данных вкладки Панель событий/Системный журнал
parent
d8af190875
commit
440426aca1
|
|
@ -52,8 +52,15 @@ class EventsContainerComponent(BaseComponent):
|
||||||
self.container_locator.get_by_role("button").filter(has_text='chevron_right'),
|
self.container_locator.get_by_role("button").filter(has_text='chevron_right'),
|
||||||
"chevron_right")
|
"chevron_right")
|
||||||
|
|
||||||
|
self.first_page = Button(page,
|
||||||
|
self.container_locator.get_by_role("button").filter(has_text='first_page'),
|
||||||
|
"first_page")
|
||||||
|
self.last_page = Button(page,
|
||||||
|
self.container_locator.get_by_role("button").filter(has_text='last_page'),
|
||||||
|
"last_page")
|
||||||
|
|
||||||
loc = self.container_locator.get_by_role("button").filter(has_text='chevron_left').\
|
loc = self.container_locator.get_by_role("button").filter(has_text='chevron_left').\
|
||||||
locator("xpath=..").get_by_role("button").nth(1)
|
locator("xpath=..").get_by_role("button").nth(2)
|
||||||
self.data_set_number = Button(page, loc, "data_set_number")
|
self.data_set_number = Button(page, loc, "data_set_number")
|
||||||
|
|
||||||
# Действия:
|
# Действия:
|
||||||
|
|
@ -73,6 +80,16 @@ class EventsContainerComponent(BaseComponent):
|
||||||
|
|
||||||
self.chevron_right.click()
|
self.chevron_right.click()
|
||||||
|
|
||||||
|
def click_first_page(self) -> None:
|
||||||
|
"""Нажатие кнопки перехода на первую сраницу"""
|
||||||
|
|
||||||
|
self.first_page.click()
|
||||||
|
|
||||||
|
def click_last_page(self) -> None:
|
||||||
|
"""Нажатие кнопки перехода на последнюю страницу"""
|
||||||
|
|
||||||
|
self.last_page.click()
|
||||||
|
|
||||||
def click_event_table_header_arrow(self, index: int) -> None:
|
def click_event_table_header_arrow(self, index: int) -> None:
|
||||||
""" Нажатие кнопки-стрелочки вверх/вниз в ячейке заголовка таблицы
|
""" Нажатие кнопки-стрелочки вверх/вниз в ячейке заголовка таблицы
|
||||||
|
|
||||||
|
|
@ -234,6 +251,77 @@ class EventsContainerComponent(BaseComponent):
|
||||||
|
|
||||||
return self.chevron_right.is_disabled()
|
return self.chevron_right.is_disabled()
|
||||||
|
|
||||||
|
def is_first_page_disabled(self) -> bool:
|
||||||
|
"""Проверка видимости кнопки получения первой страницы с набором данных"""
|
||||||
|
|
||||||
|
return self.first_page.is_disabled()
|
||||||
|
|
||||||
|
def is_last_page_disabled(self) -> bool:
|
||||||
|
"""Проверка видимости кнопки получения последней страницы с набором данных"""
|
||||||
|
|
||||||
|
return self.last_page.is_disabled()
|
||||||
|
|
||||||
|
def should_be_all_disabled(self) -> None:
|
||||||
|
"""Проверка видимости кнопок пагинации: все кнопки disabled"""
|
||||||
|
|
||||||
|
is_first_page_disabled = self.is_first_page_disabled()
|
||||||
|
assert is_first_page_disabled, "First Page button should be disabled"
|
||||||
|
|
||||||
|
is_chevron_left_disabled = self.is_chevron_left_disabled()
|
||||||
|
assert is_chevron_left_disabled, "Arrow Left button should be disabled"
|
||||||
|
|
||||||
|
is_chevron_right_disabled = self.is_chevron_right_disabled()
|
||||||
|
assert is_chevron_right_disabled, "Arrow Right button should be disabled"
|
||||||
|
|
||||||
|
is_last_page_disabled = self.is_last_page_disabled()
|
||||||
|
assert is_last_page_disabled, "Last Page button should be disabled"
|
||||||
|
|
||||||
|
def should_be_all_enabled(self) -> None:
|
||||||
|
"""Проверка видимости кнопок пагинации: все кнопки enabled"""
|
||||||
|
|
||||||
|
is_first_page_disabled = self.is_first_page_disabled()
|
||||||
|
assert not is_first_page_disabled, "First Page button should be enabled"
|
||||||
|
|
||||||
|
is_chevron_left_disabled = self.is_chevron_left_disabled()
|
||||||
|
assert not is_chevron_left_disabled, "Arrow Left button should be enabled"
|
||||||
|
|
||||||
|
is_chevron_right_disabled = self.is_chevron_right_disabled()
|
||||||
|
assert not is_chevron_right_disabled, "Arrow Right button should be enabled"
|
||||||
|
|
||||||
|
is_last_page_disabled = self.is_last_page_disabled()
|
||||||
|
assert not is_last_page_disabled, "Last Page button should be enabled"
|
||||||
|
|
||||||
|
|
||||||
|
def should_be_initial_state(self) -> None:
|
||||||
|
"""Проверка видимости кнопок для первой страницы"""
|
||||||
|
|
||||||
|
is_first_page_disabled = self.is_first_page_disabled()
|
||||||
|
assert is_first_page_disabled, "First Page button should be disabled"
|
||||||
|
|
||||||
|
is_chevron_left_disabled = self.is_chevron_left_disabled()
|
||||||
|
assert is_chevron_left_disabled, "Arrow Left button should be disabled"
|
||||||
|
|
||||||
|
is_chevron_right_disabled = self.is_chevron_right_disabled()
|
||||||
|
assert not is_chevron_right_disabled, "Arrow Right button should be enabled"
|
||||||
|
|
||||||
|
is_last_page_disabled = self.is_last_page_disabled()
|
||||||
|
assert not is_last_page_disabled, "Last Page button should be enabled"
|
||||||
|
|
||||||
|
def should_be_final_state(self) -> None:
|
||||||
|
"""Проверка видимости кнопок для последней страницы"""
|
||||||
|
|
||||||
|
is_first_page_disabled = self.is_first_page_disabled()
|
||||||
|
assert not is_first_page_disabled, "First Page button should be enabled"
|
||||||
|
|
||||||
|
is_chevron_left_disabled = self.is_chevron_left_disabled()
|
||||||
|
assert not is_chevron_left_disabled, "Arrow Left button should be enabled"
|
||||||
|
|
||||||
|
is_chevron_right_disabled = self.is_chevron_right_disabled()
|
||||||
|
assert is_chevron_right_disabled, "Arrow Right button should be disabled"
|
||||||
|
|
||||||
|
is_last_page_disabled = self.is_last_page_disabled()
|
||||||
|
assert is_last_page_disabled, "Last Page button should be disabled"
|
||||||
|
|
||||||
def should_be_events_table(self) -> None:
|
def should_be_events_table(self) -> None:
|
||||||
"""Проверяет наличие таблицы событий.
|
"""Проверяет наличие таблицы событий.
|
||||||
|
|
||||||
|
|
@ -265,6 +353,8 @@ class EventsContainerComponent(BaseComponent):
|
||||||
def should_be_pagination_buttons(self) -> None:
|
def should_be_pagination_buttons(self) -> None:
|
||||||
"""Проверяет наличие и видимость кнопок пагинации."""
|
"""Проверяет наличие и видимость кнопок пагинации."""
|
||||||
|
|
||||||
|
self.first_page.check_visibility("Pagination button 'first page' is missing")
|
||||||
self.chevron_left.check_visibility("Pagination button 'chevron left' is missing")
|
self.chevron_left.check_visibility("Pagination button 'chevron left' is missing")
|
||||||
self.data_set_number.check_visibility("Pagination button 'data set number' is missing")
|
self.data_set_number.check_visibility("Pagination button 'data set number' is missing")
|
||||||
self.chevron_right.check_visibility("Pagination button 'chevron right' is missing")
|
self.chevron_right.check_visibility("Pagination button 'chevron right' is missing")
|
||||||
|
self.last_page.check_visibility("Pagination button 'last page' is missing")
|
||||||
|
|
|
||||||
|
|
@ -41,8 +41,8 @@ class Environment:
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if self.env in self.URLS:
|
if self.env in self.URLS:
|
||||||
if self.env == self.TEST:
|
# if self.env == self.TEST:
|
||||||
return self.URLS[self.env] + "e-nms-ui/"
|
# return self.URLS[self.env] + "e-nms-ui/"
|
||||||
return self.URLS[self.env]
|
return self.URLS[self.env]
|
||||||
raise Exception(f"Unknown value of ENV variable {self.env}")
|
raise Exception(f"Unknown value of ENV variable {self.env}")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -20,7 +20,7 @@ class TestSystemLogEventsContainer:
|
||||||
Атрибуты:
|
Атрибуты:
|
||||||
browser: Фикстура для работы с браузером.
|
browser: Фикстура для работы с браузером.
|
||||||
"""
|
"""
|
||||||
|
# @pytest.mark.develop
|
||||||
def test_system_log_events_content(self, browser: Page) -> None:
|
def test_system_log_events_content(self, browser: Page) -> None:
|
||||||
"""Проверяет содержимое контейнера для отображения событий системного журнала.
|
"""Проверяет содержимое контейнера для отображения событий системного журнала.
|
||||||
|
|
||||||
|
|
@ -184,55 +184,121 @@ class TestSystemLogEventsContainer:
|
||||||
system_log_events_container.should_be_pagination_buttons()
|
system_log_events_container.should_be_pagination_buttons()
|
||||||
|
|
||||||
# Проверка начального состояния
|
# Проверка начального состояния
|
||||||
is_chevron_left_disabled = system_log_events_container.is_chevron_left_disabled()
|
tested_pages = 1
|
||||||
assert is_chevron_left_disabled, "Arrow Left button should be disabled"
|
|
||||||
|
|
||||||
is_chevron_right_disabled = system_log_events_container.is_chevron_right_disabled()
|
# to do: некорректный запрос в бэк, должно быть "filter": {"page": 0}
|
||||||
assert not is_chevron_right_disabled, "Arrow Right button should be enabled"
|
payload = {"table": "logs",
|
||||||
|
"filter": {"page": 1},
|
||||||
|
"count": 40
|
||||||
|
}
|
||||||
|
response = mp.send_post_api_request("e-nms/logs_enode", payload)
|
||||||
|
if response.status == 200:
|
||||||
|
response_body = mp.get_response_body(response)
|
||||||
|
|
||||||
|
if response_body:
|
||||||
|
pages = response_body["data"]["pages"]
|
||||||
|
|
||||||
|
if pages > 5:
|
||||||
|
tested_pages = 5
|
||||||
|
else:
|
||||||
|
tested_pages = pages
|
||||||
|
|
||||||
current_number = system_log_events_container.get_current_data_set_number()
|
current_number = system_log_events_container.get_current_data_set_number()
|
||||||
assert current_number == 1, "The first page should be number one"
|
assert current_number == 1, "The first page should be number one"
|
||||||
|
|
||||||
|
if tested_pages == 1:
|
||||||
|
system_log_events_container.should_be_all_disabled()
|
||||||
|
else:
|
||||||
|
system_log_events_container.should_be_initial_state()
|
||||||
|
|
||||||
|
# Переход на самую последнюю страницу, возврат на страницу назад, потом на страницу вперед
|
||||||
|
system_log_events_container.click_last_page()
|
||||||
|
browser.wait_for_timeout(2000)
|
||||||
|
|
||||||
|
system_log_events_container.should_be_final_state()
|
||||||
|
|
||||||
|
last_number = system_log_events_container.get_current_data_set_number()
|
||||||
|
|
||||||
|
system_log_events_container.click_chevron_left()
|
||||||
|
browser.wait_for_timeout(4000)
|
||||||
|
|
||||||
|
if last_number == 2:
|
||||||
|
system_log_events_container.should_be_initial_state()
|
||||||
|
else:
|
||||||
|
system_log_events_container.should_be_all_enabled()
|
||||||
|
|
||||||
|
counter = last_number - 1
|
||||||
|
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}"
|
||||||
|
|
||||||
|
system_log_events_container.click_chevron_right()
|
||||||
|
browser.wait_for_timeout(4000)
|
||||||
|
|
||||||
|
system_log_events_container.should_be_final_state()
|
||||||
|
|
||||||
|
current_number = system_log_events_container.get_current_data_set_number()
|
||||||
|
assert current_number == last_number, f"Expected page number {last_number} is not equal actual {current_number}"
|
||||||
|
|
||||||
|
# Переход на первую страницу, переход на следующую страницу, возврат на первую страницу
|
||||||
|
system_log_events_container.click_first_page()
|
||||||
|
browser.wait_for_timeout(2000)
|
||||||
|
|
||||||
|
system_log_events_container.should_be_initial_state()
|
||||||
|
|
||||||
|
current_number = system_log_events_container.get_current_data_set_number()
|
||||||
|
assert current_number == 1, f"Expected page number 1 is not equal actual {current_number}"
|
||||||
|
|
||||||
|
system_log_events_container.click_chevron_right()
|
||||||
|
browser.wait_for_timeout(4000)
|
||||||
|
|
||||||
|
if tested_pages == 2:
|
||||||
|
system_log_events_container.should_be_final_state()
|
||||||
|
else:
|
||||||
|
system_log_events_container.should_be_all_enabled()
|
||||||
|
|
||||||
|
current_number = system_log_events_container.get_current_data_set_number()
|
||||||
|
assert current_number == 2, f"Expected page number 2 is not equal actual {current_number}"
|
||||||
|
|
||||||
|
system_log_events_container.click_chevron_left()
|
||||||
|
browser.wait_for_timeout(4000)
|
||||||
|
|
||||||
|
system_log_events_container.should_be_initial_state()
|
||||||
|
|
||||||
|
current_number = system_log_events_container.get_current_data_set_number()
|
||||||
|
assert current_number == 1, f"Expected page number 1 is not equal actual {current_number}"
|
||||||
|
|
||||||
|
if tested_pages > 2:
|
||||||
# загрузка страниц от начала и до конца
|
# загрузка страниц от начала и до конца
|
||||||
# to_do: проверка, что происходит обновление содержимого таблицы
|
# to_do: проверка, что происходит обновление содержимого таблицы
|
||||||
counter = 1
|
counter = 1
|
||||||
# temporarily
|
|
||||||
max_pages = 5
|
while counter <= tested_pages:
|
||||||
while not is_chevron_right_disabled and counter <= max_pages:
|
|
||||||
# while not is_chevron_right_disabled:
|
|
||||||
system_log_events_container.click_chevron_right()
|
system_log_events_container.click_chevron_right()
|
||||||
browser.wait_for_timeout(1500)
|
browser.wait_for_timeout(2000)
|
||||||
|
|
||||||
|
system_log_events_container.should_be_all_enabled()
|
||||||
|
|
||||||
counter += 1
|
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()
|
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}"
|
assert current_number == counter, f"Expected page number {counter} is not equal actual {current_number}"
|
||||||
|
|
||||||
# загрузка страниц от конца к началу
|
# загрузка страниц от конца к началу
|
||||||
# to_do: проверка, что происходит обновление содержимого таблицы
|
# to_do: проверка, что происходит обновление содержимого таблицы
|
||||||
while not is_chevron_left_disabled:
|
while counter > 2:
|
||||||
system_log_events_container.click_chevron_left()
|
system_log_events_container.click_chevron_left()
|
||||||
browser.wait_for_timeout(1500)
|
browser.wait_for_timeout(2000)
|
||||||
|
|
||||||
|
system_log_events_container.should_be_all_enabled()
|
||||||
|
|
||||||
counter -= 1
|
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()
|
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}"
|
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()
|
system_log_events_container.click_chevron_left()
|
||||||
assert is_chevron_left_disabled, "Arrow Left button should be disabled"
|
browser.wait_for_timeout(2000)
|
||||||
|
|
||||||
is_chevron_right_disabled = system_log_events_container.is_chevron_right_disabled()
|
system_log_events_container.should_be_initial_state()
|
||||||
assert not is_chevron_right_disabled, "Arrow Right button should be enabled"
|
|
||||||
|
|
||||||
current_number = system_log_events_container.get_current_data_set_number()
|
current_number = system_log_events_container.get_current_data_set_number()
|
||||||
assert current_number == 1, "The first page should be number one"
|
assert current_number == 1, "The first page should be number one"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue