"""Модуль тестов вкладки 'Сеансы/Настройки'. Содержит тесты для проверки корректности отображения и функциональности элементов вкладки настройки времени жизни сеансов. """ 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) # temporarily # 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}" # @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: # """Тест проверки задания граничных значений выбранного поля формы. # """