"""Модуль тестов вкладки настройки LDAP Аутентификации. Содержит тесты для проверки корректности отображения и функциональности элементов страницы настройки LDAP Аутентификации. """ import pytest from playwright.sync_api import Page from pages.login_page import LoginPage from pages.main_page import MainPage from pages.ldap_settings_tab import LDAPAuthSettingsTab # @pytest.mark.smoke class TestLDAPAuthSettingsTab: """Набор тестов для вкладки настройки LDAP Аутентификации. Проверяет корректность отображения и функциональность элементов вкладки настройки LDAP Аутентификации. """ @pytest.fixture(scope="function", autouse=True) def setup(self, browser: Page) -> None: """Фикстура для подготовки тестового окружения. Выполняет: 1. Авторизацию в системе 2. Переход на вкладку настройки LDAP Аутентификации через панель навигации """ # Авторизация в системе login_page = LoginPage(browser) login_page.do_login() # Инициализация главной страницы main_page = MainPage(browser) # Проверка и взаимодействие с элементами навигации main_page.should_be_navigation_panel() main_page.click_main_navigation_panel_item("Настройки") main_page.click_subpanel_item("Аутентификация") main_page.click_subpanel_item("LDAP") # @pytest.mark.develop def test_ldap_auth_settings_tab_content(self, browser: Page) -> None: """Тест содержимого вкладки настройки LDAP Аутентификации. Проверяет: Наличие и корректность элементов интерфейса """ current_settings = {} default_settings = {} # Инициализация вкладки ldap_auth_settings_tab = LDAPAuthSettingsTab(browser) # запрос текущих установок cur_settings_response = ldap_auth_settings_tab.send_get_api_request("e-cmdb/api/ldap") if cur_settings_response.status == 200: response_body = ldap_auth_settings_tab.get_response_body(cur_settings_response) if response_body: current_settings = response_body[0].copy() # запрос дефолтных значений default_settings_response = ldap_auth_settings_tab.send_get_api_request("e-cmdb/api/ldap/meta") if default_settings_response.status == 200: response_body = ldap_auth_settings_tab.get_response_body(default_settings_response) if response_body: default_settings = response_body["fields"].copy() # Проверка элементов интерфейса ldap_auth_settings_tab.check_content() # Получение и проверка отображаемых входных значений формы настроек settings = ldap_auth_settings_tab.get_current_setting_values() value = settings["ip"] expected = current_settings["ip"] if expected is None: expected = self._get_default_value("ip", default_settings) assert value == expected, f"Actual value {value} is not equal expected {expected} for field 'IP'" value = settings["Порт"] expected = current_settings["port"] if expected is None: expected = self._get_default_value("port", default_settings) assert value == expected, f"Actual value {value} is not equal expected {expected} for field 'Порт'" value = settings["Имя пользователя"] expected = current_settings["login"] if expected is None: expected = self._get_default_value("login", default_settings) assert value == expected, f"Actual value {value} is not equal expected {expected} for field 'Имя пользователя'" value = settings["Пароль"] expected = current_settings["password"] if expected is None: expected = self._get_default_value("password", default_settings) assert value == expected, \ f"Actual value {value} is not equal expected {expected} for field 'Пароль'" value = settings["Домен"] expected = current_settings["domain"] if expected is None: expected = self._get_default_value("domain", default_settings) assert value == expected, \ f"Actual value {value} is not equal expected {expected} for field 'Домен'" value = settings["DN каталог пользователей"] expected = current_settings["base_dn"] if expected is None: expected = self._get_default_value("base_dn", default_settings) assert value == expected, \ f"Actual value {value} is not equal expected {expected} for field 'DN каталог пользователей'" value = settings["Атрибут авторизации"] expected = current_settings["login_attribute"] if expected is None: expected = self._get_default_value("login_attribute", default_settings) assert value == expected, \ f"Actual value {value} is not equal expected {expected} for field 'Атрибут авторизации'" value = settings["Атрибут email"] expected = current_settings["email_attribute"] if expected is None: expected = self._get_default_value("email_attribute", default_settings) assert value == expected, \ f"Actual value {value} is not equal expected {expected} for field 'Атрибут email'" value = settings["Атрибут sms"] expected = current_settings["sms_attribute"] if expected is None: expected = self._get_default_value("sms_attribute", default_settings) assert value == expected, \ f"Actual value {value} is not equal expected {expected} for field 'Атрибут sms'" def _get_default_value(self, setting_name: str, default_settings: dict) -> str| None: for setting in default_settings: if setting["name"] == setting_name: return setting["default"] return None