"""Модуль тестов вкладки 'Стойка' в модуле Объекты. Содержит тесты для проверки функциональности работы со стойкой оборудования. """ import pytest from playwright.sync_api import Page from pages.rack_page import RackPage from pages.login_page import LoginPage from pages.main_page import MainPage # @pytest.mark.smoke class TestRackTab: """Набор тестов для вкладки 'Стойка' в модуле Объекты. Проверяет корректность отображения, функциональность элементов интерфейса и переключение между вкладками стойки оборудования. Тесты покрывают следующие функциональные области: 1. test_rack_tab_content - Базовая структура и содержимое вкладки стойки 2. test_rack_tab_switching - Функциональность переключения между вкладками стойки """ @pytest.fixture(scope="function", autouse=True) def setup(self, browser: Page) -> None: """Фикстура для подготовки тестового окружения. Выполняет: 1. Авторизацию в системе 2. Переход к стойке оборудования через панель навигации: - Объекты → Физические устройства с опросом → Здание ЦОД 4 → Стойка КСПД Args: browser (Page): Экземпляр страницы Playwright для взаимодействия с UI """ # Авторизация в системе lp = LoginPage(browser) lp.do_login() # Мы на главной странице mp = MainPage(browser) mp.should_be_navigation_panel() mp.wait_for_timeout(3000) # Переходим к Объектам mp.click_main_navigation_panel_item("Объекты") mp.wait_for_timeout(3000) mp.click_subpanel_item("test-zone") mp.wait_for_timeout(3000) # Переходим к Стойка КСПД с указанием родителя mp.click_subpanel_item("Test-Rack-01", parent="test-zone") mp.wait_for_timeout(3000) @pytest.mark.develop def test_rack_tab_content(self, browser: Page) -> None: """Тест содержимого вкладки 'Стойка'. Проверяет: 1. Наличие и корректность заголовка панели с навигационной цепочкой 2. Отображение и структуру обеих сторон стойки (лицевой и обратной) 3. Наличие и функциональность кнопок панели инструментов 4. Корректность отображения юнитов и устройств на стойке Args: browser (Page): Экземпляр страницы Playwright для взаимодействия с UI """ expected_toolbar_subtitles = [ "test-zone", 'chevron_right', 'Test-Rack-01' ] rt = RackPage(browser) rt.should_be_header_panel(expected_toolbar_subtitles) # Комплексная проверка отображения обеих сторон стойки с детальной информацией rt.should_be_rack_sides_displayed() # Проверка кнопки "Скрыть стойку" rt.should_have_hide_rack_button() # Проверка кнопки "Показать стойку" rt.should_have_show_rack_button() rt.wait_for_timeout(2000) def test_rack_tab_switching(self, browser: Page) -> None: """Тест переключения между вкладками стойки оборудования. Проверяет функциональность переключения на все доступные вкладки: 1. Общая информация 2. Обслуживание 3. События 4. Сервисы Проверяет: 1. Наличие и доступность всех вкладок 2. Корректность активации вкладок после переключения 3. Отсутствие ошибок при последовательном переключении Args: browser (Page): Экземпляр страницы Playwright для взаимодействия с UI """ rt = RackPage(browser) # Проверяем переключение между всеми вкладками стойки rt.check_tab_switching() # Переход в режим редактирования rt.should_be_toolbar_buttons() rt.wait_for_timeout(2000)