"""Модуль тестов для проверки операций с компонентом панели выбора значения. Содержит тесты для для проверки операций с компонентом панели выбора значения. """ import pytest from playwright.sync_api import Page from pages.main_page import MainPage from pages.login_page import LoginPage # @pytest.mark.smoke class TestSelectionBarComponent: """Класс тестов для проверки операций с компонентом панели выбора значения на примере панели выбора значения 'Тип' в боковой панели фильтрации вкладки 'Системный журнал' панели событий. Атрибуты: browser: Фикстура для работы с браузером. """ # @pytest.mark.develop def test_selection_bar_content(self, browser: Page) -> None: """Проверяет содержимое компонента панели выбора значения. Args: browser: Экземпляр страницы Playwright. """ lp = LoginPage(browser) lp.do_login() mp = MainPage(browser) mp.should_be_event_panel() system_log_events_container = mp.click_events_panel_system_log_tab() sidebar_filter = system_log_events_container.click_filter_button() browser.wait_for_timeout(500) sidebar_filter.add_filtering_parameter("filter_type", "Тип") filter_type_bar = sidebar_filter.get_filtering_parameter("filter_type") filter_type_title = filter_type_bar.get_selection_bar_title() assert filter_type_title == "Тип", "Filtering parameter bar 'Тип' is missing" # @pytest.mark.develop def test_selection_values(self, browser: Page) -> None: """Проверяет возможность выбора значений. Args: browser: Экземпляр страницы Playwright. """ lp = LoginPage(browser) lp.do_login() mp = MainPage(browser) mp.should_be_event_panel() system_log_events_container = mp.click_events_panel_system_log_tab() sidebar_filter = system_log_events_container.click_filter_button() browser.wait_for_timeout(500) sidebar_filter.add_filtering_parameter("filter_type", "Тип") filter_type_bar = sidebar_filter.get_filtering_parameter("filter_type") filter_type_bar.open_values_list() filter_type_bar.select_value("e-nms") selected_values = filter_type_bar.get_selected_values() assert len(selected_values) > 0, "No values has been selected" assert selected_values[0] == "e-nms", f"Got unexpected selected value {selected_values[0]}" filter_type_bar.open_values_list() filter_type_bar.select_value("Технический учет") selected_values = filter_type_bar.get_selected_values() assert len(selected_values) > 0, "No values has been selected" assert selected_values[0] == "e-nms", f"Got unexpected selected value {selected_values[0]}" assert selected_values[1] == "Технический учет", f"Got unexpected selected value {selected_values[1]}" # @pytest.mark.develop def test_clear_selected_values(self, browser: Page) -> None: """Проверяет возможность удаления ранее выбранных значений. Args: browser: Экземпляр страницы Playwright. """ lp = LoginPage(browser) lp.do_login() mp = MainPage(browser) mp.should_be_event_panel() system_log_events_container = mp.click_events_panel_system_log_tab() sidebar_filter = system_log_events_container.click_filter_button() browser.wait_for_timeout(500) sidebar_filter.add_filtering_parameter("filter_type", "Тип") filter_type_bar = sidebar_filter.get_filtering_parameter("filter_type") filter_type_bar.open_values_list() filter_type_bar.select_value("e-nms") browser.wait_for_timeout(300) filter_type_bar.clear_selections() selected_values = filter_type_bar.get_selected_values() assert len(selected_values) == 0, "Selected values should be deleted"