Актуализация тестов после перехода на версию 1.31
parent
f8f85300d3
commit
7612138c50
|
|
@ -96,22 +96,12 @@ class ActionsEventsContainer(EventsContainerComponent):
|
|||
events_filter = self.click_filter_button()
|
||||
events_filter.check_content()
|
||||
|
||||
filter_status_bar = events_filter.get_filtering_parameter("filter_status")
|
||||
filter_status_title = filter_status_bar.get_selection_bar_title()
|
||||
assert filter_status_title == "Статус", "Filtering parameter bar 'Статус' is missing"
|
||||
events_filter.should_be_filtering_parameter("Статус")
|
||||
events_filter.should_be_filtering_parameter("НАИМЕНОВАНИЕ ЗАДАЧИ")
|
||||
events_filter.should_be_filtering_parameter("Объект")
|
||||
events_filter.should_be_filtering_parameter("Пользователь")
|
||||
|
||||
filter_task_name_bar = events_filter.get_filtering_parameter("filter_task_name")
|
||||
filter_task_name_title = filter_task_name_bar.get_selection_bar_title()
|
||||
assert filter_task_name_title == "НАИМЕНОВАНИЕ ЗАДАЧИ", \
|
||||
"Filtering parameter bar 'НАИМЕНОВАНИЕ ЗАДАЧИ' is missing"
|
||||
|
||||
filter_object_bar = events_filter.get_filtering_parameter("filter_object")
|
||||
filter_object_title = filter_object_bar.get_selection_bar_title()
|
||||
assert filter_object_title == "Объект", "Filtering parameter bar 'Объект' is missing"
|
||||
|
||||
filter_user_bar = events_filter.get_filtering_parameter("filter_user")
|
||||
filter_user_title = filter_user_bar.get_selection_bar_title()
|
||||
assert filter_user_title == "Пользователь", "Filtering parameter bar 'Пользователь' is missing"
|
||||
events_filter.click_close_button()
|
||||
|
||||
def check_events_table_content(self, expected_headers: list[str]) -> None:
|
||||
"""Проверка содержимого таблицы"""
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ class AuditEventsContainer(EventsContainerComponent):
|
|||
"""Проверяет содержимое контейнера для отображения событий аудита."""
|
||||
|
||||
expected_headers = [ 'ВРЕМЯ', 'ОПИСАНИЕ', 'ИДЕНТИФИКАТОР']
|
||||
expected_headers_security = [ 'ВРЕМЯ', 'ОПИСАНИЕ', 'ИДЕНТИФИКАТОР', 'ТИП']
|
||||
|
||||
self.should_be_toolbar()
|
||||
self.should_be_toolbar_buttons()
|
||||
|
|
@ -72,21 +71,12 @@ class AuditEventsContainer(EventsContainerComponent):
|
|||
events_filter = self.click_filter_button()
|
||||
events_filter.check_content()
|
||||
|
||||
filter_type_bar = events_filter.get_filtering_parameter("filter_type")
|
||||
filter_type_title = filter_type_bar.get_selection_bar_title()
|
||||
assert filter_type_title == "Тип", "Filtering parameter bar 'Тип' is missing"
|
||||
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")
|
||||
|
||||
filter_role_bar = events_filter.get_filtering_parameter("filter_role")
|
||||
filter_role_title = filter_role_bar.get_selection_bar_title()
|
||||
assert filter_role_title == "Роль", "Filtering parameter bar 'Роль' is missing"
|
||||
|
||||
filter_name_bar = events_filter.get_filtering_parameter("filter_name")
|
||||
filter_name_title = filter_name_bar.get_selection_bar_title()
|
||||
assert filter_name_title == "Имя", "Filtering parameter bar 'Имя' is missing"
|
||||
|
||||
filter_ip_bar = events_filter.get_filtering_parameter("filter_ip")
|
||||
filter_ip_title = filter_ip_bar.get_selection_bar_title()
|
||||
assert filter_ip_title == "ip", "Filtering parameter bar 'ip' is missing"
|
||||
events_filter.click_close_button()
|
||||
|
||||
def check_content_security(self) -> None:
|
||||
"""Проверяет содержимое контейнера для отображения событий безопасности."""
|
||||
|
|
@ -116,21 +106,12 @@ class AuditEventsContainer(EventsContainerComponent):
|
|||
events_filter = self.click_filter_button()
|
||||
events_filter.check_content()
|
||||
|
||||
filter_type_bar = events_filter.get_filtering_parameter("filter_type")
|
||||
filter_type_title = filter_type_bar.get_selection_bar_title()
|
||||
assert filter_type_title == "Тип", "Filtering parameter bar 'Тип' is missing"
|
||||
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")
|
||||
|
||||
filter_role_bar = events_filter.get_filtering_parameter("filter_role")
|
||||
filter_role_title = filter_role_bar.get_selection_bar_title()
|
||||
assert filter_role_title == "Роль", "Filtering parameter bar 'Роль' is missing"
|
||||
|
||||
filter_name_bar = events_filter.get_filtering_parameter("filter_name")
|
||||
filter_name_title = filter_name_bar.get_selection_bar_title()
|
||||
assert filter_name_title == "Имя", "Filtering parameter bar 'Имя' is missing"
|
||||
|
||||
filter_ip_bar = events_filter.get_filtering_parameter("filter_ip")
|
||||
filter_ip_title = filter_ip_bar.get_selection_bar_title()
|
||||
assert filter_ip_title == "ip", "Filtering parameter bar 'ip' is missing"
|
||||
events_filter.click_close_button()
|
||||
|
||||
def should_be_toolbar_buttons(self) -> None:
|
||||
"""Проверяет наличие и видимость кнопок тулбара."""
|
||||
|
|
|
|||
|
|
@ -70,17 +70,11 @@ class EventsTabContainer(EventsContainerComponent):
|
|||
events_filter = self.click_filter_button()
|
||||
events_filter.check_content()
|
||||
|
||||
filter_type_bar = events_filter.get_filtering_parameter("filter_type")
|
||||
filter_type_title = filter_type_bar.get_selection_bar_title()
|
||||
assert filter_type_title == "Тип", "Filtering parameter bar 'Тип' is missing"
|
||||
events_filter.should_be_filtering_parameter("Тип")
|
||||
events_filter.should_be_filtering_parameter("Критичность")
|
||||
events_filter.should_be_filtering_parameter("Объект")
|
||||
|
||||
filter_strictness_bar = events_filter.get_filtering_parameter("filter_strictness")
|
||||
filter_strictness_title = filter_strictness_bar.get_selection_bar_title()
|
||||
assert filter_strictness_title == "Критичность", "Filtering parameter bar 'Критичность' is missing"
|
||||
|
||||
filter_object_bar = events_filter.get_filtering_parameter("filter_object")
|
||||
filter_object_title = filter_object_bar.get_selection_bar_title()
|
||||
assert filter_object_title == "Объект", "Filtering parameter bar 'Объект' is missing"
|
||||
events_filter.click_close_button()
|
||||
|
||||
def should_be_toolbar_buttons(self) -> None:
|
||||
"""Проверяет наличие и видимость кнопок тулбара."""
|
||||
|
|
|
|||
|
|
@ -76,34 +76,15 @@ class MaintenanceEventsContainer(EventsContainerComponent):
|
|||
events_filter = self.click_filter_button()
|
||||
events_filter.check_content()
|
||||
|
||||
filter_date_bar = events_filter.get_filtering_parameter("filter_date")
|
||||
filter_date_title = filter_date_bar.get_selection_bar_title()
|
||||
assert filter_date_title == "Дата", "Filtering parameter bar 'Дата' is missing"
|
||||
events_filter.should_be_filtering_parameter("Дата")
|
||||
events_filter.should_be_filtering_parameter("Наименование события")
|
||||
events_filter.should_be_filtering_parameter("Тип")
|
||||
events_filter.should_be_filtering_parameter("Состояние")
|
||||
events_filter.should_be_filtering_parameter("Объект")
|
||||
events_filter.should_be_filtering_parameter("Автор")
|
||||
events_filter.should_be_filtering_parameter("Расположение")
|
||||
|
||||
filter_event_name_bar = events_filter.get_filtering_parameter("filter_event_name")
|
||||
filter_event_name_title = filter_event_name_bar.get_selection_bar_title()
|
||||
assert filter_event_name_title == "Наименование события", \
|
||||
"Filtering parameter bar 'Наименование события' is missing"
|
||||
|
||||
filter_type_bar = events_filter.get_filtering_parameter("filter_type")
|
||||
filter_type_title = filter_type_bar.get_selection_bar_title()
|
||||
assert filter_type_title == "Тип", "Filtering parameter bar 'Тип' is missing"
|
||||
|
||||
filter_status_bar = events_filter.get_filtering_parameter("filter_status")
|
||||
filter_status_title = filter_status_bar.get_selection_bar_title()
|
||||
assert filter_status_title == "Состояние", "Filtering parameter bar 'Состояние' is missing"
|
||||
|
||||
filter_object_bar = events_filter.get_filtering_parameter("filter_object")
|
||||
filter_object_title = filter_object_bar.get_selection_bar_title()
|
||||
assert filter_object_title == "Объект", "Filtering parameter bar 'Объект' is missing"
|
||||
|
||||
filter_author_bar = events_filter.get_filtering_parameter("filter_author")
|
||||
filter_author_title = filter_author_bar.get_selection_bar_title()
|
||||
assert filter_author_title == "Автор", "Filtering parameter bar 'Автор' is missing"
|
||||
|
||||
filter_location_bar = events_filter.get_filtering_parameter("filter_location")
|
||||
filter_location_title = filter_location_bar.get_selection_bar_title()
|
||||
assert filter_location_title == "Расположение", "Filtering parameter bar 'Расположение' is missing"
|
||||
events_filter.click_close_button()
|
||||
|
||||
def should_be_toolbar_buttons(self) -> None:
|
||||
"""Проверяет наличие и видимость кнопок тулбара."""
|
||||
|
|
|
|||
|
|
@ -70,17 +70,11 @@ class SystemLogEventsContainer(EventsContainerComponent):
|
|||
events_filter = self.click_filter_button()
|
||||
events_filter.check_content()
|
||||
|
||||
filter_type_bar = events_filter.get_filtering_parameter("filter_type")
|
||||
filter_type_title = filter_type_bar.get_selection_bar_title()
|
||||
assert filter_type_title == "Тип", "Filtering parameter bar 'Тип' is missing"
|
||||
events_filter.should_be_filtering_parameter("Тип")
|
||||
events_filter.should_be_filtering_parameter("Критичность")
|
||||
events_filter.should_be_filtering_parameter("Объект")
|
||||
|
||||
filter_strictness_bar = events_filter.get_filtering_parameter("filter_strictness")
|
||||
filter_strictness_title = filter_strictness_bar.get_selection_bar_title()
|
||||
assert filter_strictness_title == "Критичность", "Filtering parameter bar 'Критичность' is missing"
|
||||
|
||||
filter_object_bar = events_filter.get_filtering_parameter("filter_object")
|
||||
filter_object_title = filter_object_bar.get_selection_bar_title()
|
||||
assert filter_object_title == "Объект", "Filtering parameter bar 'Объект' is missing"
|
||||
events_filter.click_close_button()
|
||||
|
||||
def should_be_toolbar_buttons(self) -> None:
|
||||
"""Проверяет наличие и видимость кнопок тулбара."""
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
"""Модуль панели формы ввода полей фильтрации отображения данных в панели событий. Содержит класс
|
||||
для работы с формами ввода, их элементами и проверками."""
|
||||
|
||||
from playwright.sync_api import Page, Locator
|
||||
from playwright.sync_api import Page, Locator, expect
|
||||
from tools.logger import get_logger
|
||||
from elements.button_element import Button
|
||||
from components.base_component import BaseComponent
|
||||
|
|
@ -43,12 +43,16 @@ class EventsFilterPanel(BaseComponent):
|
|||
self.reset_button = Button(page,
|
||||
self.page.get_by_role("button").filter(has_text='Сбросить Фильтры'),
|
||||
"reset_button")
|
||||
self.close_button = Button(page,
|
||||
self.page.get_by_role("button").filter(has_text='Закрыть'),
|
||||
"close_button")
|
||||
|
||||
# Действия:
|
||||
def add_filtering_parameter(self, name: str, title: str) -> None:
|
||||
"""Добавляет поле задания параметров фильтрации по заданному имени."""
|
||||
|
||||
loc = self.events_filter_locator.get_by_role("combobox").filter(has_text=title)
|
||||
# loc = self.events_filter_locator.get_by_role("combobox").filter(has_text=title)
|
||||
loc = self.events_filter_locator.get_by_role("combobox").get_by_placeholder(title)
|
||||
self.filtering_parameters[name] = SelectionBarComponent(self.page, loc)
|
||||
|
||||
def get_filtering_parameter(self, name: str) -> SelectionBarComponent | None:
|
||||
|
|
@ -76,6 +80,11 @@ class EventsFilterPanel(BaseComponent):
|
|||
|
||||
self.reset_button.click()
|
||||
|
||||
def click_close_button(self) -> None:
|
||||
"""Клик по кнопке закрытия окна фильтрации."""
|
||||
|
||||
self.close_button.click()
|
||||
|
||||
# Проверки:
|
||||
def check_content(self) -> None:
|
||||
"""Проверяет наличие постоянных полей панели параметров фильтрации."""
|
||||
|
|
@ -85,7 +94,7 @@ class EventsFilterPanel(BaseComponent):
|
|||
|
||||
self.check_apply_button_visibility()
|
||||
self.check_reset_button_visibility()
|
||||
|
||||
self.check_close_button_visibility()
|
||||
|
||||
def check_vertical_scrolling(self, locator: str| Locator) -> bool:
|
||||
"""Проверяет возможность вертикальной прокрутки формы."""
|
||||
|
|
@ -97,7 +106,18 @@ class EventsFilterPanel(BaseComponent):
|
|||
|
||||
self.apply_button.check_visibility("Apply Filter Button is missing")
|
||||
|
||||
def check_close_button_visibility(self) -> None:
|
||||
"""Проверяет наличие кнопки закрытия окна фильтрации."""
|
||||
|
||||
self.close_button.check_visibility("Close Filter window Button is missing")
|
||||
|
||||
def check_reset_button_visibility(self) -> None:
|
||||
"""Проверяет наличие кнопки сброса фильтра."""
|
||||
|
||||
self.reset_button.check_visibility("Reset Filter Button is missing")
|
||||
|
||||
def should_be_filtering_parameter(self, title: str) -> None:
|
||||
"""Проверяет наличие поля панели параметров фильтрации по его заголовку."""
|
||||
|
||||
loc = self.events_filter_locator.get_by_role("combobox").get_by_placeholder(title)
|
||||
expect(loc).to_be_visible(), f"Filtering parameter bar '{title}' is missing"
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ class EditUserModalWindow(ModalWindowComponent):
|
|||
self.add_content_item("name_input", name_input)
|
||||
|
||||
# Поле Роль
|
||||
role_loc = self.page.locator(input_form_locator).get_by_role("combobox").first
|
||||
role_loc = elements_locators.get("Роль").get_by_role("combobox").first
|
||||
role_input = TextInput(page, role_loc, "role_input")
|
||||
self.add_content_item("role_input", role_input)
|
||||
self.add_content_item("roles_list", DropdownList(page))
|
||||
|
|
@ -240,16 +240,6 @@ class EditUserModalWindow(ModalWindowComponent):
|
|||
reset_password_button = self.get_button_by_name("reset_password")
|
||||
reset_password_button.click()
|
||||
|
||||
# def _get_fields_locators(self, page) -> dict:
|
||||
# fields_locators = {}
|
||||
# elements = page.locator(ModalWindowLocators.INPUT_FORM_USER_DATA). \
|
||||
# locator("div.v-text-field__slot > input").all()
|
||||
# for el in elements:
|
||||
# val = el.input_value().strip()
|
||||
# if val:
|
||||
# fields_locators[val] = el.locator("../ancestor::div[5]")
|
||||
# return fields_locators
|
||||
|
||||
# Проверки:
|
||||
def check_content(self, user_name, role):
|
||||
"""Проверяет наличие и корректность элементов окна.
|
||||
|
|
|
|||
|
|
@ -19,7 +19,11 @@ class EventPanelLocators:
|
|||
TAB_AUDIT (str): кнопки Аудит.
|
||||
BUTTONS_EVENT (str): блока кнопок-счетчиков событий.
|
||||
BUTTON_USER (str): кнопки текущего пользователя.
|
||||
CONTAINER_ACTIONS_TAB (str): контейнера для отображения событий вкладки Действия.
|
||||
CONTAINER_EVENTS_TAB (str): контейнера для отображения событий вкладки События.
|
||||
CONTAINER_MAINTENANCE_EVENTS (str): контейнера для отображения событий обслуживания.
|
||||
CONTAINER_SYSTEM_LOG_EVENTS (str): контейнера с событиями Системного журнала.
|
||||
CONTAINER_AUDIT_EVENTS (str): контейнера для отображения событий аудита.
|
||||
"""
|
||||
|
||||
AREA_EVENTS = "#app > div.application--wrap > div > div:nth-child(1)"
|
||||
|
|
@ -27,6 +31,7 @@ class EventPanelLocators:
|
|||
BUTTON_EXPAND_LESS = "//button[contains(@data-testid, 'BASELINE__btn__toolbar_close')]"
|
||||
BUTTON_EXPAND_MORE = "//button[contains(@data-testid, 'BASELINE__btn__toolbar_open')]"
|
||||
|
||||
TABS_TOOLBAR = "//div[@data-testid='BASELINE__tabs__toolbar']"
|
||||
TAB_STATES = "//div[@data-testid='BASELINE__states_tab__toolbar']"
|
||||
TAB_ACTIONS = "//div[@data-testid='BASELINE__actions_tab__toolbar']"
|
||||
TAB_EVENTS = "//div[@data-testid='BASELINE__events_tab__toolbar']"
|
||||
|
|
@ -34,7 +39,7 @@ class EventPanelLocators:
|
|||
TAB_SYSTEM_LOG = "//div[@data-testid='BASELINE__system journal_tab__toolbar']"
|
||||
TAB_AUDIT = "//div[@data-testid='BASELINE__audit_tab__toolbar']"
|
||||
|
||||
BUTTONS_EVENT = "//nav/div[@class='v-toolbar__content']/div[@class='v-toolbar__items'][2]//span[contains(@class, 'v-tooltip')]"
|
||||
BUTTONS_EVENT = "//button[@data-testid='BASELINE__btn__user']/preceding-sibling::div//span[contains(@class, 'v-tooltip')]"
|
||||
|
||||
BUTTON_USER = "//button[@data-testid='BASELINE__btn__user']"
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ class TestSystemLogEventsContainer:
|
|||
Атрибуты:
|
||||
browser: Фикстура для работы с браузером.
|
||||
"""
|
||||
@pytest.mark.develop
|
||||
# @pytest.mark.develop
|
||||
def test_system_log_events_content(self, browser: Page) -> None:
|
||||
"""Проверяет содержимое контейнера для отображения событий системного журнала.
|
||||
|
||||
|
|
|
|||
|
|
@ -102,7 +102,7 @@ class TestNavigationPanel:
|
|||
mp.wait_for_timeout(5000)
|
||||
|
||||
|
||||
mp.click_subpanel_item("test-zone")
|
||||
mp.click_subpanel_item("test-zone-01")
|
||||
mp.wait_for_timeout(3000)
|
||||
|
||||
# Переходим к Стойке
|
||||
|
|
|
|||
|
|
@ -46,10 +46,12 @@ class TestUsersTabEditUser:
|
|||
|
||||
# Выход из системы текущего пользователя
|
||||
mp = MainPage(browser)
|
||||
mp.wait_for_timeout(500)
|
||||
mp.do_logout()
|
||||
|
||||
# Авторизация администратором для очистки
|
||||
login_page = LoginPage(browser)
|
||||
mp.wait_for_timeout(300)
|
||||
login_page.do_login()
|
||||
|
||||
# Удаляем тестовых пользователей
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ class TestUserCard:
|
|||
is_changed, error = change_password_window.change_password(user_data["password"], user_data["new_password"])
|
||||
assert is_changed, f"Unsucessful attempt to change password: {error}"
|
||||
|
||||
# @pytest.mark.develop
|
||||
@pytest.mark.develop
|
||||
def test_change_password_unsuccessful(self, browser: Page,
|
||||
create_user: None,
|
||||
cleanup_user: None) -> None:
|
||||
|
|
@ -199,6 +199,7 @@ class TestUserCard:
|
|||
|
||||
# Значение полей нового пароля и подтверждения нового пароля не совпадают
|
||||
user_card = mp.click_user_button()
|
||||
mp.wait_for_timeout(500)
|
||||
change_password_window = user_card.click_change_password_button()
|
||||
password_inputs = change_password_window.get_password_inputs()
|
||||
|
||||
|
|
@ -211,13 +212,16 @@ class TestUserCard:
|
|||
|
||||
# Используется неправильный старый пароль
|
||||
user_card = mp.click_user_button()
|
||||
mp.wait_for_timeout(500)
|
||||
change_password_window = user_card.click_change_password_button()
|
||||
is_changed, _ = change_password_window.change_password("123456789123", user_data["new_password"])
|
||||
assert not is_changed, "Sucessful attempt to change password for incorrect old password"
|
||||
change_password_window.click_cancel_button()
|
||||
|
||||
|
||||
# Пустое поле ввода пароля на примере поля ввода старого пароля
|
||||
user_card = mp.click_user_button()
|
||||
mp.wait_for_timeout(500)
|
||||
change_password_window = user_card.click_change_password_button()
|
||||
is_changed, error = change_password_window.change_password("", user_data["new_password"])
|
||||
assert not is_changed, "Sucessful attempt to change password for empty old password input"
|
||||
|
|
|
|||
Loading…
Reference in New Issue