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

Skip to content

# ViewTemplateModalWindow

Модуль modal_view_template содержит класс для работы с модальным окном шаблона.

Класс ViewTemplateModalWindow наследует базовый функционал ModalWindowComponent и реализует методы просмотра модального окна шаблона.

## `ViewTemplateModalWindow`

Bases: `ModalWindowComponent`

Модальное окно шаблона.

Наследует ModalWindowComponent и добавляет функционал для: 1. Инициализации модального окна с конкретным шаблоном 2. Закрытия модального окна через тулбар 3. Проверки содержимого модального окна 4. Проверки содержимого JSON контейнера

Source code in `components_derived\modal_view_template.py`

    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

    class ViewTemplateModalWindow(ModalWindowComponent):
        """Модальное окно шаблона.

        Наследует ModalWindowComponent и добавляет функционал для:
        1. Инициализации модального окна с конкретным шаблоном
        2. Закрытия модального окна через тулбар
        3. Проверки содержимого модального окна
        4. Проверки содержимого JSON контейнера
        """

        def __init__(self, page: Page, title: str):
            """Инициализирует элементы формы модального окна шаблона."""
            super().__init__(page)

            # Настройка заголовка и кнопки закрытия
            self.window_title = title
            locator_button_toolbar_close = self.page.get_by_role("navigation").filter(
                has_text=re.compile(self.window_title)
            ).get_by_role("button")

            self.add_toolbar_title(self.window_title)
            self.add_toolbar_button(locator_button_toolbar_close, "close")

            # Инициализация JSON контейнера
            self.json_container = JsonContainerComponent(page)

        def close_window_by_toolbar_button(self):
            """Закрывает окно через кнопку в тулбаре."""
            self.click_toolbar_close_button()

        def check_content(self) -> None:
            """Проверяет наличие и корректность элементов окна.

            Проверяет:
            1. Наличие заголовка окна с именем шаблона
            2. Видимость кнопки закрытия
            3. Подсказку кнопки закрытия
            """
            self.check_by_window_title()
            self.check_toolbar_button_visibility("close")
            self.check_toolbar_button_tooltip("close", "Закрыть")

        def verify_json_container_content(self, template_data: dict) -> None:
            """Проверяет соответствие данных контейнера данным из API.

            Args:
                template_data: Данные шаблона из API.
            """
            # Читаем данные из контейнера
            actual_data = self.json_container.read_data(JsonContainerLocators.CONTAINER)

            # Сравниваем actual_data с данными конкретного шаблона
            self.json_container.check_json_equals(
                actual_data,
                template_data,
                "Expected json content is not equal actual:"
            )

### `__init__(page, title)`

Инициализирует элементы формы модального окна шаблона.

Source code in `components_derived\modal_view_template.py`

    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42

    def __init__(self, page: Page, title: str):
        """Инициализирует элементы формы модального окна шаблона."""
        super().__init__(page)

        # Настройка заголовка и кнопки закрытия
        self.window_title = title
        locator_button_toolbar_close = self.page.get_by_role("navigation").filter(
            has_text=re.compile(self.window_title)
        ).get_by_role("button")

        self.add_toolbar_title(self.window_title)
        self.add_toolbar_button(locator_button_toolbar_close, "close")

        # Инициализация JSON контейнера
        self.json_container = JsonContainerComponent(page)

### `check_content()`

Проверяет наличие и корректность элементов окна.

Проверяет: 1. Наличие заголовка окна с именем шаблона 2. Видимость кнопки закрытия 3. Подсказку кнопки закрытия

Source code in `components_derived\modal_view_template.py`

    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58

    def check_content(self) -> None:
        """Проверяет наличие и корректность элементов окна.

        Проверяет:
        1. Наличие заголовка окна с именем шаблона
        2. Видимость кнопки закрытия
        3. Подсказку кнопки закрытия
        """
        self.check_by_window_title()
        self.check_toolbar_button_visibility("close")
        self.check_toolbar_button_tooltip("close", "Закрыть")

### `close_window_by_toolbar_button()`

Закрывает окно через кнопку в тулбаре.

Source code in `components_derived\modal_view_template.py`

    44
    45
    46

    def close_window_by_toolbar_button(self):
        """Закрывает окно через кнопку в тулбаре."""
        self.click_toolbar_close_button()

### `verify_json_container_content(template_data)`

Проверяет соответствие данных контейнера данным из API.

Parameters:

Name | Type | Description | Default
--- | --- | --- | ---
`template_data` | `dict` | Данные шаблона из API. | required

Source code in `components_derived\modal_view_template.py`

    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74

    def verify_json_container_content(self, template_data: dict) -> None:
        """Проверяет соответствие данных контейнера данным из API.

        Args:
            template_data: Данные шаблона из API.
        """
        # Читаем данные из контейнера
        actual_data = self.json_container.read_data(JsonContainerLocators.CONTAINER)

        # Сравниваем actual_data с данными конкретного шаблона
        self.json_container.check_json_equals(
            actual_data,
            template_data,
            "Expected json content is not equal actual:"
        )