120 lines
5.1 KiB
Python
120 lines
5.1 KiB
Python
"""Модуль тестов вкладки 'Стойка' в модуле Объекты.
|
||
|
||
Содержит тесты для проверки функциональности
|
||
работы со стойкой оборудования.
|
||
"""
|
||
|
||
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_panel_header(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)
|