# TestRackTab - Документация тестов eNODE-Мониторинг

Skip to content

# TestRackTab

Модуль тестов вкладки 'Стойка' в модуле Объекты.

Содержит тесты для проверки функциональности работы со стойкой оборудования.

## `TestRackTab`

Набор тестов для вкладки 'Стойка' в модуле Объекты.

Проверяет корректность отображения, функциональность элементов интерфейса и переключение между вкладками стойки оборудования.

Тесты покрывают следующие функциональные области: 1. test_rack_tab_content - Базовая структура и содержимое вкладки стойки 2. test_rack_tab_switching - Функциональность переключения между вкладками стойки

Source code in `tests\e2e\rack\test_rack_tab.py`

     14
     15
     16
     17
     18
     19
     20
     21
     22
     23
     24
     25
     26
     27
     28
     29
     30
     31
     32
     33
     34
     35
     36
     37
     38
     39
     40
     41
     42
     43
     44
     45
     46
     47
     48
     49
     50
     51
     52
     53
     54
     55
     56
     57
     58
     59
     60
     61
     62
     63
     64
     65
     66
     67
     68
     69
     70
     71
     72
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114

    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()

### `setup(browser)`

Фикстура для подготовки тестового окружения.

Выполняет: 1. Авторизацию в системе 2. Переход к стойке оборудования через панель навигации: - Объекты → Физические устройства с опросом → Здание ЦОД 4 → Стойка КСПД

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`browser` | `Page` | Экземпляр страницы Playwright для взаимодействия с UI | required

Source code in `tests\e2e\rack\test_rack_tab.py`

    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59

    @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)

### `test_rack_tab_content(browser)`

Тест содержимого вкладки 'Стойка'.

Проверяет: 1. Наличие и корректность заголовка панели с навигационной цепочкой 2. Отображение и структуру обеих сторон стойки (лицевой и обратной) 3. Наличие и функциональность кнопок панели инструментов 4. Корректность отображения юнитов и устройств на стойке

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`browser` | `Page` | Экземпляр страницы Playwright для взаимодействия с UI | required

Source code in `tests\e2e\rack\test_rack_tab.py`

    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92

    @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)

### `test_rack_tab_switching(browser)`

Тест переключения между вкладками стойки оборудования.

Проверяет функциональность переключения на все доступные вкладки: 1. Общая информация 2. Обслуживание 3. События 4. Сервисы

Проверяет: 1. Наличие и доступность всех вкладок 2. Корректность активации вкладок после переключения 3. Отсутствие ошибок при последовательном переключении

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`browser` | `Page` | Экземпляр страницы Playwright для взаимодействия с UI | required

Source code in `tests\e2e\rack\test_rack_tab.py`

     94
     95
     96
     97
     98
     99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114

    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()