144 lines
6.7 KiB
Python
144 lines
6.7 KiB
Python
"""Модуль тестов вкладки настройки 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
|