Актуализация тестов панели событий в соответствии с последними изменениями UI
parent
e926b04a14
commit
18f7873145
|
|
@ -94,7 +94,7 @@ class EventsContainerComponent(BaseComponent):
|
|||
self.last_page.click()
|
||||
|
||||
def click_filter_button(self) -> EventsFilterPanel:
|
||||
"""Нажатие кнопки перехода на первую страницу"""
|
||||
"""Нажатие кнопки фильтр"""
|
||||
|
||||
self.toolbar.click_button("filter_button")
|
||||
expect(self.page.locator("div.menuable__content__active")).to_be_visible(), "Events filter is missing"
|
||||
|
|
@ -207,6 +207,16 @@ class EventsContainerComponent(BaseComponent):
|
|||
|
||||
self.events_table.check_table_headers(actual_headers, expected_headers)
|
||||
|
||||
def check_events_table_status_button(self, row_index: int, tooltip_text: str) -> None:
|
||||
""" Проверка наличия в строке кнопки статуса (состояния) и ее тултипа"""
|
||||
|
||||
loc = self.container_locator.locator(self.table_locator)
|
||||
row_locator = self.events_table.get_row_locator(loc, row_index-1)
|
||||
button = TooltipButton(self.page, row_locator.get_by_role("button"), "status_button")
|
||||
button.check_visibility(f"Tooltip button is missing in {row_index} table row")
|
||||
button.check_tooltip_with_text(tooltip_text)
|
||||
|
||||
|
||||
def check_events_table_column_descending_order(self,
|
||||
index: int,
|
||||
convert2timestamp=False) -> bool:
|
||||
|
|
|
|||
|
|
@ -114,8 +114,16 @@ class ActionsEventsContainer(EventsContainerComponent):
|
|||
|
||||
self.check_events_table_headers(events_table[0], expected_headers)
|
||||
|
||||
for i in range(len(expected_headers)):
|
||||
actual_state = self.get_arrow_button_state(i)
|
||||
assert actual_state == "down", f"Arrow state for column {i} should be 'down'"
|
||||
|
||||
if len(events_table) == 1:
|
||||
logger.info("Table body is missing")
|
||||
else:
|
||||
rows_count = len(events_table)
|
||||
for j in range(1, rows_count-1):
|
||||
self.check_events_table_status_button(j, "Статус")
|
||||
|
||||
self.should_be_pagination_buttons()
|
||||
|
||||
|
|
|
|||
|
|
@ -62,6 +62,9 @@ class AuditEventsContainer(EventsContainerComponent):
|
|||
assert False, "The contents of the events table are missing"
|
||||
|
||||
self.check_events_table_headers(events_table[0], expected_headers)
|
||||
for i in range(len(expected_headers)):
|
||||
actual_state = self.get_arrow_button_state(i)
|
||||
assert actual_state == "down", f"Arrow state for column {i} should be 'down'"
|
||||
|
||||
if len(events_table) == 1:
|
||||
logger.info("Table body is missing")
|
||||
|
|
@ -97,6 +100,9 @@ class AuditEventsContainer(EventsContainerComponent):
|
|||
assert False, "The contents of the events table are missing"
|
||||
|
||||
self.check_events_table_headers(events_table[0], expected_headers)
|
||||
for i in range(len(expected_headers)):
|
||||
actual_state = self.get_arrow_button_state(i)
|
||||
assert actual_state == "down", f"Arrow state for column {i} should be 'down'"
|
||||
|
||||
if len(events_table) == 1:
|
||||
logger.info("Table body is missing")
|
||||
|
|
|
|||
|
|
@ -61,6 +61,9 @@ class EventsTabContainer(EventsContainerComponent):
|
|||
assert False, "The contents of the events table are missing"
|
||||
|
||||
self.check_events_table_headers(events_table[0], expected_headers)
|
||||
for i in range(len(expected_headers)):
|
||||
actual_state = self.get_arrow_button_state(i)
|
||||
assert actual_state == "down", f"Arrow state for column {i} should be 'down'"
|
||||
|
||||
if len(events_table) == 1:
|
||||
logger.info("Table body is missing")
|
||||
|
|
|
|||
|
|
@ -66,9 +66,19 @@ class MaintenanceEventsContainer(EventsContainerComponent):
|
|||
assert False, "The contents of the events table are missing"
|
||||
|
||||
self.check_events_table_headers(events_table[0], expected_headers)
|
||||
for i in range(len(expected_headers)):
|
||||
actual_state = self.get_arrow_button_state(i)
|
||||
assert actual_state == "down", f"Arrow state for column {i} should be 'down'"
|
||||
|
||||
if len(events_table) == 1:
|
||||
rows_count = len(events_table)
|
||||
|
||||
if rows_count == 1:
|
||||
logger.info("Table body is missing")
|
||||
else:
|
||||
j = 1
|
||||
while j < rows_count:
|
||||
self.check_events_table_status_button(j, "Состояние")
|
||||
j += 1
|
||||
|
||||
self.should_be_pagination_buttons()
|
||||
|
||||
|
|
|
|||
|
|
@ -61,9 +61,21 @@ class SystemLogEventsContainer(EventsContainerComponent):
|
|||
assert False, "The contents of the events table are missing"
|
||||
|
||||
self.check_events_table_headers(events_table[0], expected_headers)
|
||||
for i in range(len(expected_headers)):
|
||||
actual_state = self.get_arrow_button_state(i)
|
||||
assert actual_state == "down", f"Arrow state for column {i} should be 'down'"
|
||||
|
||||
if len(events_table) == 1:
|
||||
logger.info("Table body is missing")
|
||||
else:
|
||||
j = 1
|
||||
# так как записей много, проверяем первые 40
|
||||
rows_count = 40
|
||||
if len(events_table) < 40:
|
||||
rows_count = len(events_table)
|
||||
while j < rows_count:
|
||||
self.check_events_table_status_button(j, "Критичность")
|
||||
j += 1
|
||||
|
||||
self.should_be_pagination_buttons()
|
||||
|
||||
|
|
|
|||
|
|
@ -74,3 +74,9 @@ class ViewTaskModalWindow(ModalWindowComponent):
|
|||
""" Проверка соответствия заголовка таблицы ожидаемому"""
|
||||
|
||||
self.task_stages_table.check_table_headers(actual_headers, expected_headers)
|
||||
|
||||
def check_stages_table_row_highlighting(self, row_index: int) -> None:
|
||||
"""Проверяет выделение указанной строки таблицы.
|
||||
"""
|
||||
|
||||
self.task_stages_table.check_row_highlighting(self.task_stages_table_locator, row_index)
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ class TestActionsEventsContainer:
|
|||
if rows_count > 3:
|
||||
actions_events_container.check_events_table_row_highlighting(int(rows_count / 2))
|
||||
|
||||
@pytest.mark.develop
|
||||
# @pytest.mark.develop
|
||||
def test_events_table_scrolling(self, browser: Page):
|
||||
"""Проверяет возможность скроллинга таблицы событий на примере таблицы Архив.
|
||||
|
||||
|
|
@ -176,6 +176,15 @@ class TestActionsEventsContainer:
|
|||
task_view_window.check_stages_table_headers(stages_table_content[0], expected_task_headers)
|
||||
stages_table_content.pop(0)
|
||||
|
||||
rows_count = len(stages_table_content)
|
||||
if rows_count != 0:
|
||||
# Проверка выделения строк
|
||||
task_view_window.check_stages_table_row_highlighting(0)
|
||||
if rows_count > 1:
|
||||
task_view_window.check_stages_table_row_highlighting(rows_count - 1)
|
||||
if rows_count > 3:
|
||||
task_view_window.check_stages_table_row_highlighting(int(rows_count / 2))
|
||||
|
||||
payload = {"filter": {"page": 1},
|
||||
"count": 40}
|
||||
|
||||
|
|
@ -246,9 +255,9 @@ class TestActionsEventsContainer:
|
|||
# convert2timestamp=True)
|
||||
# assert is_descending_order, "Column data should be in descending order"
|
||||
|
||||
# @pytest.mark.develop
|
||||
@pytest.mark.develop
|
||||
def test_real_time_events_table_pagination(self, browser: Page):
|
||||
"""Проверяет возможность пагинации таблицы событий.
|
||||
"""Проверяет возможность пагинации таблицы событий на примере вкладки 'Реальное время'.
|
||||
|
||||
Args:
|
||||
browser: Экземпляр страницы Playwright.
|
||||
|
|
@ -268,6 +277,7 @@ class TestActionsEventsContainer:
|
|||
|
||||
# Проверка начального состояния
|
||||
tested_pages = 1
|
||||
pages = 1
|
||||
|
||||
payload = {"filter": {"page": 1},
|
||||
"count": 40}
|
||||
|
|
@ -359,7 +369,7 @@ class TestActionsEventsContainer:
|
|||
counter += 1
|
||||
browser.wait_for_timeout(2000)
|
||||
|
||||
if counter == tested_pages:
|
||||
if counter == tested_pages and counter == pages:
|
||||
actions_events_container.should_be_final_state()
|
||||
else:
|
||||
actions_events_container.should_be_all_enabled()
|
||||
|
|
|
|||
|
|
@ -183,6 +183,7 @@ class TestAuditEventsContainer:
|
|||
|
||||
# Проверка начального состояния
|
||||
tested_pages = 1
|
||||
pages = 1
|
||||
|
||||
# to do: некорректный запрос в бэк, должно быть "filter": {"page": 0}
|
||||
payload = {"table": "default",
|
||||
|
|
@ -282,7 +283,7 @@ class TestAuditEventsContainer:
|
|||
counter += 1
|
||||
browser.wait_for_timeout(2000)
|
||||
|
||||
if counter == tested_pages:
|
||||
if counter == tested_pages and counter == pages:
|
||||
audit_events_container.should_be_final_state()
|
||||
else:
|
||||
audit_events_container.should_be_all_enabled()
|
||||
|
|
|
|||
|
|
@ -246,6 +246,7 @@ class TestAuditEventsContainerSecurity:
|
|||
|
||||
# Проверка начального состояния
|
||||
tested_pages = 1
|
||||
pages = 1
|
||||
|
||||
# to do: некорректный запрос в бэк, должно быть "filter": {"page": 0}
|
||||
payload = {"table": "default",
|
||||
|
|
@ -346,7 +347,7 @@ class TestAuditEventsContainerSecurity:
|
|||
counter += 1
|
||||
browser.wait_for_timeout(2000)
|
||||
|
||||
if counter == tested_pages:
|
||||
if counter == tested_pages and counter == pages:
|
||||
security_events_container.should_be_final_state()
|
||||
else:
|
||||
security_events_container.should_be_all_enabled()
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class TestEventPanel:
|
|||
|
||||
# Проверяем соответствие тултипов информации на кнопках
|
||||
tooltip_event_counters = mp.get_event_counters_by_tooltips()
|
||||
button_event_counters = mp.get_event_counters_by_tooltips()
|
||||
button_event_counters = mp.get_event_counters_by_buttons()
|
||||
|
||||
for event, counter in tooltip_event_counters.items():
|
||||
button_counter = button_event_counters.get(event)
|
||||
|
|
@ -49,7 +49,7 @@ class TestEventPanel:
|
|||
if button_counter != counter:
|
||||
assert False, f"Expected tooltip value {counter} is not equal button value {button_counter} for event button {event}"
|
||||
|
||||
@pytest.mark.develop
|
||||
# @pytest.mark.develop
|
||||
def test_event_panel_expand_buttons(self, browser: Page) -> None:
|
||||
"""Проверяет состояние и количество кнопок расширения рабочей области панели событий.
|
||||
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ class TestEventsTabContainer:
|
|||
events_tab_container = mp.click_events_panel_events_tab()
|
||||
events_tab_container.check_content()
|
||||
|
||||
#@pytest.mark.skip(reason="Отсутствуют данные для вывода в таблицу событий")
|
||||
@pytest.mark.skip(reason="Отсутствуют данные для вывода в таблицу событий")
|
||||
def test_events_table_row_highlighting(self, browser: Page):
|
||||
"""Проверяет выделение строк в таблице событий.
|
||||
|
||||
|
|
@ -187,6 +187,7 @@ class TestEventsTabContainer:
|
|||
|
||||
# Проверка начального состояния
|
||||
tested_pages = 1
|
||||
pages = 1
|
||||
|
||||
# to do: некорректный запрос в бэк, должно быть "filter": {"page": 0}
|
||||
payload = {"table": "syslogs",
|
||||
|
|
@ -280,7 +281,7 @@ class TestEventsTabContainer:
|
|||
counter += 1
|
||||
browser.wait_for_timeout(2000)
|
||||
|
||||
if counter == tested_pages:
|
||||
if counter == tested_pages and counter == pages:
|
||||
events_tab_container.should_be_final_state()
|
||||
else:
|
||||
events_tab_container.should_be_all_enabled()
|
||||
|
|
|
|||
|
|
@ -131,7 +131,7 @@ class TestMaintenanceEventsContainer:
|
|||
# Проверка видимости первой строки после прокрутки
|
||||
maintenance_events_container.check_events_table_first_row_visibility()
|
||||
|
||||
@pytest.mark.skip(reason="Отсутствуют данные для вывода в таблицу событий")
|
||||
# @pytest.mark.skip(reason="Отсутствуют данные для вывода в таблицу событий")
|
||||
def test_events_table_column_sorting(self, browser: Page):
|
||||
"""Проверяет сортировку колонки 'Время' в таблице событий.
|
||||
|
||||
|
|
@ -168,7 +168,7 @@ class TestMaintenanceEventsContainer:
|
|||
convert2timestamp=True)
|
||||
assert is_descending_order, "Column data should be in descending order"
|
||||
|
||||
@pytest.mark.skip(reason="Отсутствуют данные для вывода в таблицу событий")
|
||||
# @pytest.mark.skip(reason="Отсутствуют данные для вывода в таблицу событий")
|
||||
def test_events_table_pagination(self, browser: Page):
|
||||
"""Проверяет возможность пагинации таблицы событий.
|
||||
|
||||
|
|
@ -188,6 +188,7 @@ class TestMaintenanceEventsContainer:
|
|||
|
||||
# Проверка начального состояния
|
||||
tested_pages = 1
|
||||
pages = 1
|
||||
|
||||
# to do: некорректный запрос в бэк, должно быть "filter": {"page": 0}
|
||||
payload = {"id": [ "/physical"],
|
||||
|
|
@ -200,7 +201,11 @@ class TestMaintenanceEventsContainer:
|
|||
response_body = mp.get_response_body(response)
|
||||
|
||||
if response_body:
|
||||
pages = response_body["data"]["pages"]
|
||||
pages = int(len(response_body)/40)
|
||||
if (len(response_body) % 40) > 0:
|
||||
pages = pages + 1
|
||||
|
||||
# print(f"pages = {pages}")
|
||||
|
||||
if pages > 5:
|
||||
tested_pages = 5
|
||||
|
|
@ -282,7 +287,7 @@ class TestMaintenanceEventsContainer:
|
|||
counter += 1
|
||||
browser.wait_for_timeout(2000)
|
||||
|
||||
if counter == tested_pages:
|
||||
if counter == tested_pages and counter == pages:
|
||||
maintenance_events_container.should_be_final_state()
|
||||
else:
|
||||
maintenance_events_container.should_be_all_enabled()
|
||||
|
|
|
|||
|
|
@ -188,6 +188,7 @@ class TestSystemLogEventsContainer:
|
|||
|
||||
# Проверка начального состояния
|
||||
tested_pages = 1
|
||||
pages = 1
|
||||
|
||||
# to do: некорректный запрос в бэк, должно быть "filter": {"page": 0}
|
||||
payload = {"table": "logs",
|
||||
|
|
@ -281,7 +282,7 @@ class TestSystemLogEventsContainer:
|
|||
counter += 1
|
||||
browser.wait_for_timeout(2000)
|
||||
|
||||
if counter == tested_pages:
|
||||
if counter == tested_pages and counter == pages:
|
||||
system_log_events_container.should_be_final_state()
|
||||
else:
|
||||
system_log_events_container.should_be_all_enabled()
|
||||
|
|
|
|||
Loading…
Reference in New Issue