147 lines
7.1 KiB
Python
147 lines
7.1 KiB
Python
"""Модуль тестов вкладки 'Сеансы/Настройки'.
|
||
|
||
Содержит тесты для проверки корректности отображения
|
||
и функциональности элементов вкладки настройки времени жизни сеансов.
|
||
"""
|
||
|
||
import pytest
|
||
from playwright.sync_api import Page
|
||
from pages.login_page import LoginPage
|
||
from pages.main_page import MainPage
|
||
from pages.session_settings_tab import SessionSettingsTab
|
||
|
||
|
||
# @pytest.mark.smoke
|
||
class TestSessionSettingsTab:
|
||
"""Набор тестов для вкладки 'Сеансы/Настройки'.
|
||
|
||
Проверяет корректность отображения и функциональность элементов вкладки настройки времени жизни сеансов.
|
||
|
||
Тесты покрывают следующие сценарии:
|
||
1. test_session_settings_tab_content: Тест содержимого вкладки 'Сеансы/Настройки'
|
||
2. test_edit_session_settings: Тест проверки возможности редактирования выбранных полей формы
|
||
настройки времени жизни сеансов.
|
||
3. test_edit_session_setting_by_arrow: Тест проверки возможности увеличения/уменьшения значения
|
||
выбранного поля формы с помощью стрелочек Вверх/Вниз.
|
||
"""
|
||
|
||
|
||
@pytest.fixture(scope="function", autouse=True)
|
||
def setup(self, browser: Page) -> None:
|
||
"""Фикстура для подготовки тестового окружения.
|
||
|
||
Выполняет:
|
||
1. Авторизацию в системе
|
||
2. Переход на вкладку 'Сеансы/Настройки' через панель навигации
|
||
"""
|
||
# Авторизация в системе
|
||
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("Сеансы")
|
||
main_page.click_subpanel_item("Настройки", parent="Сеансы")
|
||
|
||
# @pytest.mark.develop
|
||
def test_session_settings_tab_content(self, browser: Page) -> None:
|
||
"""Тест содержимого вкладки 'Сеансы/Настройки'.
|
||
|
||
Проверяет:
|
||
1. Наличие и корректность элементов интерфейса
|
||
2. Соответствие содержимого полей формы данным из БД
|
||
"""
|
||
# Инициализация страницы сеансов
|
||
session_settings_tab = SessionSettingsTab(browser)
|
||
|
||
# Проверка элементов интерфейса
|
||
session_settings_tab.check_content()
|
||
|
||
# Проверяем API ответ
|
||
response = session_settings_tab.send_get_api_request("e-cmdb/api/objectByPath?path=/config/auth")
|
||
if response.status == 200:
|
||
response_body = session_settings_tab.get_response_body(response)
|
||
|
||
if response_body:
|
||
# Проверка содержимого таблица с верификацией данных из БД
|
||
session_settings = response_body.get("options").get("key_ttl")
|
||
session_settings_tab.verify_form_data(session_settings)
|
||
else:
|
||
print(f"Error request session setings data from API: {response.status_text}")
|
||
|
||
# @pytest.mark.develop
|
||
def test_edit_session_settings(self, browser: Page) -> None:
|
||
"""Тест проверки возможности редактирования выбранных полей формы настройки времени жизни сеансов.
|
||
|
||
Проверяет:
|
||
1. Возможность редактирования выбранных полей формы настройки времени жизни сеансов.
|
||
"""
|
||
new_settings = {'administrator': "50",
|
||
'operator': "20",
|
||
'manager': "20",
|
||
"inform_secur_user": "25"}
|
||
|
||
# Инициализация страницы сеансов
|
||
session_settings_tab = SessionSettingsTab(browser)
|
||
|
||
session_settings_tab.edit_settings(new_settings)
|
||
|
||
updated_settings = session_settings_tab.get_settings_values()
|
||
|
||
for key, value in new_settings.items():
|
||
updated_value = updated_settings.get(key)
|
||
assert updated_value == value, f"{key} updated value {updated_value} is not equal expected value {value}"
|
||
|
||
# temporarily
|
||
session_settings_tab.click_cancel_button()
|
||
|
||
# @pytest.mark.develop
|
||
def test_edit_session_setting_by_arrow(self, browser: Page) -> None:
|
||
"""Тест проверки возможности увеличения/уменьшения значения выбранного поля формы с помощью
|
||
стрелочек Вверх/Вниз.
|
||
"""
|
||
|
||
field_name = 'operator'
|
||
|
||
# Инициализация страницы сеансов
|
||
session_settings_tab = SessionSettingsTab(browser)
|
||
|
||
session_settings_tab.click_edit_button()
|
||
|
||
start_value = session_settings_tab.get_setting_value(field_name)
|
||
expected_value = int(start_value)
|
||
|
||
for i in range(5):
|
||
session_settings_tab.increase_setting_value(field_name)
|
||
|
||
current_value = int(session_settings_tab.get_setting_value(field_name))
|
||
expected_value += 1
|
||
|
||
assert current_value == expected_value, \
|
||
f"Expected value {expected_value} is not equal current value {current_value} for {field_name} setting"
|
||
|
||
for j in range(5):
|
||
session_settings_tab.decrease_setting_value(field_name)
|
||
|
||
current_value = int(session_settings_tab.get_setting_value(field_name))
|
||
expected_value -= 1
|
||
|
||
assert current_value == expected_value, \
|
||
f"Expected value {expected_value} is not equal current value {current_value} for {field_name} setting"
|
||
|
||
current_value = int(session_settings_tab.get_setting_value(field_name))
|
||
assert current_value == int(start_value), \
|
||
f"Expected value {start_value} is not equal current value {current_value} for {field_name} setting"
|
||
|
||
session_settings_tab.click_cancel_button()
|
||
|
||
# to be Done
|
||
# def test_edit_session_setting_boundary_values(self, browser: Page) -> None:
|
||
# """Тест проверки задания граничных значений выбранного поля формы.
|
||
# """
|