e-nms_qa_automation/tests/e2e/authentication/test_ldap_settings_tab.py

144 lines
6.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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