From f8f85300d3ce51956293b083b97a06b159db6c3b Mon Sep 17 00:00:00 2001 From: nsubbot Date: Tue, 10 Feb 2026 14:35:24 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=BD=D0=B5=D1=81=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D0=B9?= =?UTF-8?q?=20=D0=B2=20=D0=BB=D0=BE=D0=BA=D0=B0=D1=82=D0=BE=D1=80=D1=8B=20?= =?UTF-8?q?=D0=B8=20=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=82=D1=83=D0=BB=D0=B1=D0=B0=D1=80=D0=BE=D0=B2=20=D0=BF=D0=BE?= =?UTF-8?q?=D1=81=D0=BB=D0=B5=20=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B9=20=D0=B2=20UI=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8?= =?UTF-8?q?=D0=B8=201.31?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- locators/settings_form_locators.py | 5 +--- pages/keycloak_settings_tab.py | 2 +- pages/ldap_settings_tab.py | 2 +- pages/push_notifications_settings_tab.py | 17 +------------ pages/service_status_tab.py | 6 ++--- pages/session_settings_tab.py | 25 +++++-------------- pages/sms_notifications_settings_tab.py | 2 +- .../scrolling/test_services_table.py | 2 +- tests/e2e/test_expand_navigation_panel.py | 2 +- tests/e2e/test_service_status_tab.py | 12 ++++----- 10 files changed, 22 insertions(+), 53 deletions(-) diff --git a/locators/settings_form_locators.py b/locators/settings_form_locators.py index eebee6a..b9f0747 100644 --- a/locators/settings_form_locators.py +++ b/locators/settings_form_locators.py @@ -18,10 +18,7 @@ class SettingsFormLocators: SETTTINGS_FORM_SCROLL_CONTAINER = "//div[contains(@class, 'scrollarea__body')]" SETTTINGS_FORM_TITLE = f"{SETTTINGS_FORM_SCROLL_CONTAINER}//div[contains(@class, 'v-toolbar__title')]" - SETTINGS_FORM_INPUT_FORM_CONTAINER = "//nav[contains(@class, 'active v-toolbar')]/following-sibling::div" - SETTINGS_FORM_SMS_INPUT_FORM_CONTAINER = "//nav[contains(@class, 'active v-toolbar')]/../following-sibling::div" - SETTINGS_FORM_LDAP_INPUT_FORM_CONTAINER = "//nav[contains(@class, 'active v-toolbar')]/../following-sibling::div" - SETTINGS_FORM_KEYCLOAK_INPUT_FORM_CONTAINER = "//nav[contains(@class, 'active v-toolbar')]/../following-sibling::div" + SETTINGS_FORM_INPUT_FORM_CONTAINER = "//nav[contains(@class, 'active v-toolbar')]/../following-sibling::div" SETTINGS_FORM_INPUT_FIELD = "div.v-text-field__slot > input" SETTINGS_FORM_INPUT_VALUE_SUFFIX = ".v-text-field__suffix" diff --git a/pages/keycloak_settings_tab.py b/pages/keycloak_settings_tab.py index 8529e6a..740880f 100644 --- a/pages/keycloak_settings_tab.py +++ b/pages/keycloak_settings_tab.py @@ -44,7 +44,7 @@ class KeycloakAuthSettingsTab(BasePage): # Форма для отображения/редактирования полей настроек KEYCLOAK Аутентификации self.settings_form = SettingsFormComponent(page) - container_locator = self.page.locator(SettingsFormLocators.SETTINGS_FORM_KEYCLOAK_INPUT_FORM_CONTAINER) + container_locator = self.page.locator(SettingsFormLocators.SETTINGS_FORM_INPUT_FORM_CONTAINER) self.input_fields_locators = self.settings_form.get_input_fields_locators(container_locator) diff --git a/pages/ldap_settings_tab.py b/pages/ldap_settings_tab.py index e048c29..767f59d 100644 --- a/pages/ldap_settings_tab.py +++ b/pages/ldap_settings_tab.py @@ -46,7 +46,7 @@ class LDAPAuthSettingsTab(BasePage): # Форма для отображения/редактирования полей настроек LDAP Аутентификации self.settings_form = SettingsFormComponent(page) - container_locator = self.page.locator(SettingsFormLocators.SETTINGS_FORM_LDAP_INPUT_FORM_CONTAINER) + container_locator = self.page.locator(SettingsFormLocators.SETTINGS_FORM_INPUT_FORM_CONTAINER) # Метка "tls" label_tls_locator = container_locator.get_by_text("tls") diff --git a/pages/push_notifications_settings_tab.py b/pages/push_notifications_settings_tab.py index b612b2c..bc257e3 100644 --- a/pages/push_notifications_settings_tab.py +++ b/pages/push_notifications_settings_tab.py @@ -29,12 +29,9 @@ class PushNotificationsSettingsTab(BasePage): super().__init__(page) - - self.toolbar = ToolbarComponent(page, "Push уведомления") - # Форма для отображения/редактирования полей настроек Push уведомлений self.settings_form = SettingsFormComponent(page) - self.settings_form.add_toolbar_title("Общие") + self.settings_form.add_toolbar_title("Push уведомления") container_locator = self.page.locator(SettingsFormLocators.SETTINGS_FORM_INPUT_FORM_CONTAINER) self.input_fields_locators = self.settings_form.get_input_fields_locators(container_locator) @@ -137,8 +134,6 @@ class PushNotificationsSettingsTab(BasePage): expected_input_field_names = ["Сообщение", "Пользователи"] - self.should_be_toolbar() - self.should_be_form_toolbar() self.settings_form.check_button_visibility("submit_button") @@ -160,16 +155,6 @@ class PushNotificationsSettingsTab(BasePage): f"Push notifications settings input form item with name '{name}' is missing" ) - def should_be_toolbar(self) -> None: - """Проверяет наличие тулбара страницы. - - Raises: - AssertionError: Если тулбар или кнопка редактирования отсутствуют. - """ - loc = self.page.get_by_role("navigation").filter( - has_text=re.compile("Push уведомления")).locator("div").nth(1) - self.toolbar.check_toolbar_presence_by_locator(loc, "Toolbar with title 'Push уведомления' is missing") - def should_be_form_toolbar(self) -> None: """Проверяет наличие тулбара формы редактирования настроек. diff --git a/pages/service_status_tab.py b/pages/service_status_tab.py index b628523..d044bd2 100644 --- a/pages/service_status_tab.py +++ b/pages/service_status_tab.py @@ -1,4 +1,4 @@ -"""Модуль вкладки 'Статус обслуживания'. +"""Модуль вкладки 'Статус компонентов'. Содержит класс ServiceStatusTab для работы с таблицей сервисов. Позволяет проверять состояние и взаимодействовать с элементами вкладки. @@ -14,7 +14,7 @@ from pages.base_page import BasePage class ServiceStatusTab(BasePage): - """Класс для работы с вкладкой 'Статус обслуживания'. + """Класс для работы с вкладкой 'Статус компонентов'. Предоставляет методы для взаимодействия с таблицей сервисов и проверки её состояния. @@ -24,7 +24,7 @@ class ServiceStatusTab(BasePage): """ def __init__(self, page: Page) -> None: - """Инициализирует компоненты вкладки 'Статус обслуживания'.""" + """Инициализирует компоненты вкладки 'Статус компонентов'.""" super().__init__(page) diff --git a/pages/session_settings_tab.py b/pages/session_settings_tab.py index e25cc9b..3e8f61e 100644 --- a/pages/session_settings_tab.py +++ b/pages/session_settings_tab.py @@ -27,24 +27,22 @@ class SessionSettingsTab(BasePage): super().__init__(page) - self.toolbar = ToolbarComponent(page, "Настройки") - toolbar_button_edit = self.page.get_by_role("navigation").filter(has_text=re.compile("Настройки")). \ + self.toolbar = ToolbarComponent(page, "Время жизни сеанса") + toolbar_button_edit = self.page.get_by_role("navigation").filter(has_text=re.compile("Время жизни сеанса")). \ locator("//button[@data-testid='SESSION_SETTINGS__btn__edit']") self.toolbar.add_tooltip_button(toolbar_button_edit, "edit") - toolbar_button_save = self.page.get_by_role("navigation").filter(has_text=re.compile("Настройки")). \ + toolbar_button_save = self.page.get_by_role("navigation").filter(has_text=re.compile("Время жизни сеанса")). \ locator("//button[@data-testid='SESSION_SETTINGS__btn__submit']") self.toolbar.add_tooltip_button(toolbar_button_save, "save") - toolbar_button_cancel = self.page.get_by_role("navigation").filter(has_text=re.compile("Настройки")). \ + toolbar_button_cancel = self.page.get_by_role("navigation").filter(has_text=re.compile("Время жизни сеанса")). \ locator("//button[@data-testid='SESSION_SETTINGS__btn__cancelEdit']") self.toolbar.add_tooltip_button(toolbar_button_cancel, "cancel") # Форма для отображения/редактирования полей настроек сессии пользователя self.settings_form = SettingsFormComponent(page) - self.settings_form.add_toolbar_title("Время жизни сеанса") - container_locator = self.page.locator(SettingsFormLocators.SETTINGS_FORM_INPUT_FORM_CONTAINER) self.input_fields_locators = self.settings_form.get_input_fields_locators(container_locator) @@ -208,8 +206,6 @@ class SessionSettingsTab(BasePage): self.should_be_toolbar() self.should_be_toolbar_buttons() - self.should_be_form_toolbar() - actual_input_field_names = self.input_fields_locators.keys() assert set(actual_input_field_names) == set(expected_input_field_names), \ f"Misscomparison input field names: Expected {expected_input_field_names}, Actual {actual_input_field_names}" @@ -242,8 +238,8 @@ class SessionSettingsTab(BasePage): AssertionError: Если тулбар или кнопка редактирования отсутствуют. """ loc = self.page.get_by_role("navigation").filter( - has_text=re.compile("Настройки")).locator("div").nth(1) - self.toolbar.check_toolbar_presence_by_locator(loc, "Toolbar with title 'Настройки' is missing") + has_text=re.compile("Время жизни сеанса")).locator("div").nth(1) + self.toolbar.check_toolbar_presence_by_locator(loc, "Toolbar with title 'Время жизни сеанса' is missing") self.toolbar.check_button_visibility("edit") def should_be_toolbar_buttons(self) -> None: @@ -265,15 +261,6 @@ class SessionSettingsTab(BasePage): self.toolbar.get_button_by_name("cancel").click() self.toolbar.check_button_visibility("edit") - def should_be_form_toolbar(self) -> None: - """Проверяет наличие тулбара формы редактирования настроек. - - Raises: - AssertionError: Если тулбар отсутствует. - """ - - self.settings_form.should_be_toolbar() - def verify_form_data(self, session_settings: dict) -> None: """Проверяет соответствие содержимого полей формы данным из БД. diff --git a/pages/sms_notifications_settings_tab.py b/pages/sms_notifications_settings_tab.py index 18310f1..5cfd86a 100644 --- a/pages/sms_notifications_settings_tab.py +++ b/pages/sms_notifications_settings_tab.py @@ -47,7 +47,7 @@ class SMSNotificationsSettingsTab(BasePage): # Форма для отображения/редактирования полей настроек СМС уведомлений self.settings_form = SettingsFormComponent(page) - container_locator = self.page.locator(SettingsFormLocators.SETTINGS_FORM_SMS_INPUT_FORM_CONTAINER) + container_locator = self.page.locator(SettingsFormLocators.SETTINGS_FORM_INPUT_FORM_CONTAINER) self.input_fields_locators = self.settings_form.get_input_fields_locators(container_locator) loc = self.input_fields_locators.get("ip") diff --git a/tests/components/scrolling/test_services_table.py b/tests/components/scrolling/test_services_table.py index 97746e2..49f4696 100644 --- a/tests/components/scrolling/test_services_table.py +++ b/tests/components/scrolling/test_services_table.py @@ -28,7 +28,7 @@ class TestServiceStatusTable: mp.should_be_navigation_panel() mp.click_main_navigation_panel_item("Настройки") mp.click_subpanel_item("Обслуживание и диагностика") - mp.click_subpanel_item("Статус обслуживания") + mp.click_subpanel_item("Статус компонентов") def test_scrolling(self, browser: Page) -> None: """Проверяет прокрутку таблицы статусов сервисов. diff --git a/tests/e2e/test_expand_navigation_panel.py b/tests/e2e/test_expand_navigation_panel.py index 71d1b6d..e07fe51 100644 --- a/tests/e2e/test_expand_navigation_panel.py +++ b/tests/e2e/test_expand_navigation_panel.py @@ -76,7 +76,7 @@ class TestNavigationPanel: mp.click_main_navigation_panel_item("Настройки") mp.click_subpanel_item("Обслуживание и диагностика") - mp.click_subpanel_item("Статус обслуживания") + mp.click_subpanel_item("Статус компонентов") mp.wait_for_timeout(2000) mp.click_subpanel_item("Сеансы") diff --git a/tests/e2e/test_service_status_tab.py b/tests/e2e/test_service_status_tab.py index 6321de9..8268a69 100644 --- a/tests/e2e/test_service_status_tab.py +++ b/tests/e2e/test_service_status_tab.py @@ -1,4 +1,4 @@ -"""Модуль тестов вкладки 'Статус обслуживания'. +"""Модуль тестов вкладки 'Статус компонентов'. Содержит тесты для проверки отображения и функциональности элементов вкладки статусов сервисов. @@ -15,10 +15,10 @@ from pages.login_page import LoginPage # @pytest.mark.smoke class TestServiceStatusTab: - """Класс тестов для проверки вкладки 'Статус обслуживания'. + """Класс тестов для проверки вкладки 'Статус компонентов'. Тесты покрывают следующие сценарии: - 1. test_service_status_tab_content: Проверяет содержимое вкладки 'Статус обслуживания' + 1. test_service_status_tab_content: Проверяет содержимое вкладки 'Статус компонентов' 2. test_service_status_table_row_highlighting: Проверяет выделение строк в таблице сервисов 3. test_service_status_tab_resize: Проверяет возможность расширения/сжатия рабочей области вкладки 4. test_service_status_tab_reload: Проверяет возможность обновления контента после нажатия кнопки 'Обновить' @@ -47,12 +47,12 @@ class TestServiceStatusTab: # Клик по пункту 'Обслуживание и диагностика' в панели навигации настроек mp.click_subpanel_item("Обслуживание и диагностика") - # Клик по пункту 'Статус обслуживания' в панели навигации обслуживания - mp.click_subpanel_item("Статус обслуживания") + # Клик по пункту 'Статус компонентов' в панели навигации обслуживания + mp.click_subpanel_item("Статус компонентов") # @pytest.mark.develop def test_service_status_tab_content(self, browser: Page): - """Проверяет содержимое вкладки 'Статус обслуживания'. + """Проверяет содержимое вкладки 'Статус компонентов'. Args: browser: Экземпляр страницы Playwright.