e-nms_qa_automation/tests/e2e/rack/test_rack_tab.py

115 lines
5.3 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.

"""Модуль тестов вкладки 'Стойка' в модуле Объекты.
Содержит тесты для проверки функциональности
работы со стойкой оборудования.
"""
import pytest
from playwright.sync_api import Page
from pages.rack_pages.rack_tab import RackTab
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("Физические устройства с опросом")
mp.wait_for_timeout(3000)
# Переходим Здание ЦОД 4
mp.click_subpanel_item("Здание ЦОД 4")
mp.wait_for_timeout(3000)
# Переходим к Стойка КСПД с указанием родителя
mp.click_subpanel_item("Стойка КСПД", parent="Здание ЦОД 4")
mp.wait_for_timeout(10000)
@pytest.mark.develop
def test_rack_tab_content(self, browser: Page) -> None:
"""Тест содержимого вкладки 'Стойка'.
Проверяет:
1. Наличие и корректность заголовка панели с навигационной цепочкой
2. Отображение и структуру обеих сторон стойки (лицевой и обратной)
3. Наличие и функциональность кнопок панели инструментов
4. Корректность отображения юнитов и устройств на стойке
Args:
browser (Page): Экземпляр страницы Playwright для взаимодействия с UI
"""
expected_toolbar_subtitles = [
"Мониторинг и инвентаризация",
'chevron_right',
"Физические устройства с опросом",
'chevron_right',
"Здание ЦОД 4",
'chevron_right',
"Стойка КСПД"
]
rt = RackTab(browser)
rt.should_be_header_panel(expected_toolbar_subtitles)
# Комплексная проверка отображения обеих сторон стойки с детальной информацией
rt.should_be_rack_sides_displayed()
# Переход в режим редактирования
rt.should_be_toolbar_buttons()
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 = RackTab(browser)
# Проверяем переключение между всеми вкладками стойки
rt.check_tab_switching()