Skip to content

TestTemplatesTab

Модуль тестов вкладки 'Шаблоны'.

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

TestTemplatesTab

Набор тестов для вкладки 'Шаблоны'.

Проверяет корректность отображения и функциональность элементов вкладки Шаблоны.

Тесты покрывают следующие сценарии: 1. test_templates_tab_content - Проверка содержимого вкладки 2. test_templates_table_row_highlighting - Проверка выделения строк в таблице 3. test_templates_table_scrolling - Проверка вертикального скроллинга таблицы 4. test_templates_modal_window_content - Проверка содержимого модального окна 5. test_templates_modal_window_scrolling - Проверка скроллинга модального окна 6. test_templates_modal_window_api_data_consistency - Проверка соответствия данных API

Source code in tests\e2e\test_templates_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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
class TestTemplatesTab:
    """Набор тестов для вкладки 'Шаблоны'.

    Проверяет корректность отображения и функциональность элементов вкладки Шаблоны.

    Тесты покрывают следующие сценарии:
    1. test_templates_tab_content - Проверка содержимого вкладки
    2. test_templates_table_row_highlighting - Проверка выделения строк в таблице
    3. test_templates_table_scrolling - Проверка вертикального скроллинга таблицы
    4. test_templates_modal_window_content - Проверка содержимого модального окна
    5. test_templates_modal_window_scrolling - Проверка скроллинга модального окна
    6. test_templates_modal_window_api_data_consistency - Проверка соответствия данных API
    """

    @pytest.fixture(scope="function", autouse=True)
    def setup(self, browser: Page) -> None:
        """Фикстура для подготовки тестового окружения.

        Выполняет:
        1. Авторизацию в системе
        2. Переход на вкладку 'Шаблоны' через панель навигации
        """
        # Авторизация в системе
        login_page = LoginPage(browser)
        login_page.do_login()

        # Инициализация главной страницы
        main_page = MainPage(browser)

        # Проверка и взаимодействие с элементами навигации
        main_page.should_be_navigation_panel()
        main_page.click_main_navigation_panel_item("Настройки")
        main_page.click_subpanel_item("Шаблоны")

    def test_templates_tab_content(self, browser: Page) -> None:
        """Тест содержимого вкладка 'Шаблоны'.

        Проверяет:
        1. Наличие и корректность тулбара
        2. Наличие таблицы шаблонов
        3. Соответствие содержимого таблицы
        """
        # Инициализация страницы сеансов
        templates_tab = TemplatesTab(browser)

        # Проверка тулбара вкладки
        templates_tab.should_be_toolbar()

        # Проверка наличия таблицы шаблонов
        templates_tab.should_be_templates_table()

        browser.wait_for_timeout(5000)

        # Проверка содержимого таблицы шаблонов
        templates_tab.check_templates_table_content()

    def test_templates_table_row_highlighting(self, browser: Page) -> None:
        """Проверка выделения строк в таблице шаблонов.

        Проверяет корректность выделения строк при клике на различные позиции:
        1. Первая строка
        2. Последняя строка
        3. Строка в середине таблицы
        """

        templates_tab = TemplatesTab(browser)

        # Проверка тулбара вкладки
        templates_tab.should_be_toolbar()

        # Проверка наличия таблицы шаблонов
        templates_tab.should_be_templates_table()

        # Получение количества строк в таблице
        rows_count = templates_tab.get_rows_count()

        # Проверка выделения строк
        templates_tab.check_templates_table_row_highlighting(0)
        templates_tab.check_templates_table_row_highlighting(rows_count - 1)
        templates_tab.check_templates_table_row_highlighting(int(rows_count / 2))

    def test_templates_table_scrolling(self, browser: Page) -> None:
        """Проверка вертикального скроллинга таблицы шаблонов.

        Проверяет:
        1. Возможность вертикальной прокрутки таблицы
        2. Видимость строк после прокрутки вниз и вверх
        3. Корректность отображения данных после скроллинга
        """

        templates_tab = TemplatesTab(browser)

        browser.wait_for_timeout(2000)

        # Проверка возможности вертикального скроллинга
        is_scrollable = templates_tab.check_templates_table_vertical_scrolling()

        if is_scrollable:
            print("Таблица поддерживает вертикальный скроллинг")

            # Прокрутка вниз
            templates_tab.scroll_templates_table_down()

            browser.wait_for_timeout(1000)

            # Проверка видимости последней строки после прокрутки
            templates_tab.check_templates_table_last_row_visibility()

            # Прокрутка вверх
            templates_tab.scroll_templates_table_up()

            browser.wait_for_timeout(1000)

            # Проверка видимости первой строки после прокрутки
            templates_tab.check_templates_table_first_row_visibility()
        else:
            print("Таблица не поддерживает вертикальный скроллинг")

            # Проверка видимости первой строки
            templates_tab.check_templates_table_first_row_visibility()

    def test_templates_modal_window_content(self, browser: Page) -> None:
        """Тест содержимого модального окна шаблона.

        Проверяет:
        1. Открытие модального окна при клике на строку таблицы
        2. Наличие и содержимое модального окна
        3. Наличие тулбара в модальном окне
        4. Проверка кнопки закрытия и её подсказки
        5. Закрытие модального окна
        """
        # Инициализация страницы шаблонов
        templates_tab = TemplatesTab(browser)

        # Проверка наличия таблицы шаблонов
        templates_tab.should_be_templates_table()

        # Добавляем задержку для загрузки данных
        browser.wait_for_timeout(2000)

        # Открываем модальное окно, кликая на первую строку таблицы
        title = templates_tab.open_template_modal_by_index(0)

        # Добавляем задержку для открытия модального окна
        browser.wait_for_timeout(1000)

        # Проверка открытия модального окна
        templates_tab.should_be_modal_window()

        # Проверка содержимого модального окна
        templates_tab.check_templates_modal_content(title)

        # Закрытие модального окна через кнопку закрытия
        templates_tab.close_modal_window_by_toolbar_button(title)

        # Проверяем, что модальное окно закрылось
        templates_tab.should_not_be_modal_window()

    def test_templates_modal_window_scrolling(self, browser: Page) -> None:
        """Тест скроллинга модального окна шаблона.

        Проверяет:
        1. Открытие модального окна при клике на строку таблицы
        2. Возможность вертикального скроллинга содержимого модального окна
        3. Закрытие модального окна
        """

        # Инициализация страницы шаблонов
        templates_tab = TemplatesTab(browser)

        # Проверка наличия таблицы шаблонов
        templates_tab.should_be_templates_table()

        # Добавляем задержку для загрузки данных
        browser.wait_for_timeout(2000)

        # Открываем модальное окно, кликая на первую строку таблицы
        title = templates_tab.open_template_modal_by_index(0)

        # Добавляем задержку для открытия модального окна
        browser.wait_for_timeout(1000)

        # Проверка открытия модального окна
        templates_tab.should_be_modal_window()

        # Проверка вертикального скроллинга модального окна
        is_scrollable = templates_tab.check_modal_vertical_scrolling()

        if is_scrollable:
            print("Модальное окно поддерживает вертикальный скроллинг")

            # Прокрутка вниз
            templates_tab.scroll_modal_down()
            browser.wait_for_timeout(1000)

            # Прокрутка вверх
            templates_tab.scroll_modal_up()
            browser.wait_for_timeout(1000)
        else:
            print("Модальное окно не поддерживает вертикальный скроллинг")

        # Закрытие модального окна через кнопку закрытия
        templates_tab.close_modal_window_by_toolbar_button(title)

        # Проверяем, что модальное окно закрылось
        templates_tab.should_not_be_modal_window()

    # @pytest.mark.skip(reason="Разрабатывается. Временно исключено из тестирования")
    def test_templates_modal_window_api_data_consistency(self, browser: Page) -> None:
        """Тест соответствия данных модального окна данным из API.

        Проверяет:
        1. Открытие модального окна при клике на строку таблицы
        2. Соответствие JSON конфигурационных данных в модальном окне данным из API
        3. Закрытие модального окна
        """
        # Инициализация страницы шаблонов
        templates_tab = TemplatesTab(browser)

        # Проверка наличия таблицы шаблонов
        templates_tab.should_be_templates_table()

        # Добавляем задержку для загрузки данных
        browser.wait_for_timeout(5000)

        # Открываем модальное окно, кликая на первую строку таблицы
        title = templates_tab.open_template_modal_by_index(0)

        # Добавляем задержку для открытия модального окна
        browser.wait_for_timeout(2000)

        # Проверка открытия модального окна
        templates_tab.should_be_modal_window()

        # Проверка соответствия данных модального окна данным из API
        templates_tab.verify_json_container_content(title)

        # Закрытие модального окна через кнопку закрытия
        templates_tab.close_modal_window_by_toolbar_button(title)

        # Проверяем, что модальное окно закрылось
        templates_tab.should_not_be_modal_window()

setup(browser)

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

Выполняет: 1. Авторизацию в системе 2. Переход на вкладку 'Шаблоны' через панель навигации

Source code in tests\e2e\test_templates_tab.py
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
@pytest.fixture(scope="function", autouse=True)
def setup(self, browser: Page) -> None:
    """Фикстура для подготовки тестового окружения.

    Выполняет:
    1. Авторизацию в системе
    2. Переход на вкладку 'Шаблоны' через панель навигации
    """
    # Авторизация в системе
    login_page = LoginPage(browser)
    login_page.do_login()

    # Инициализация главной страницы
    main_page = MainPage(browser)

    # Проверка и взаимодействие с элементами навигации
    main_page.should_be_navigation_panel()
    main_page.click_main_navigation_panel_item("Настройки")
    main_page.click_subpanel_item("Шаблоны")

test_templates_modal_window_api_data_consistency(browser)

Тест соответствия данных модального окна данным из API.

Проверяет: 1. Открытие модального окна при клике на строку таблицы 2. Соответствие JSON конфигурационных данных в модальном окне данным из API 3. Закрытие модального окна

Source code in tests\e2e\test_templates_tab.py
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
def test_templates_modal_window_api_data_consistency(self, browser: Page) -> None:
    """Тест соответствия данных модального окна данным из API.

    Проверяет:
    1. Открытие модального окна при клике на строку таблицы
    2. Соответствие JSON конфигурационных данных в модальном окне данным из API
    3. Закрытие модального окна
    """
    # Инициализация страницы шаблонов
    templates_tab = TemplatesTab(browser)

    # Проверка наличия таблицы шаблонов
    templates_tab.should_be_templates_table()

    # Добавляем задержку для загрузки данных
    browser.wait_for_timeout(5000)

    # Открываем модальное окно, кликая на первую строку таблицы
    title = templates_tab.open_template_modal_by_index(0)

    # Добавляем задержку для открытия модального окна
    browser.wait_for_timeout(2000)

    # Проверка открытия модального окна
    templates_tab.should_be_modal_window()

    # Проверка соответствия данных модального окна данным из API
    templates_tab.verify_json_container_content(title)

    # Закрытие модального окна через кнопку закрытия
    templates_tab.close_modal_window_by_toolbar_button(title)

    # Проверяем, что модальное окно закрылось
    templates_tab.should_not_be_modal_window()

test_templates_modal_window_content(browser)

Тест содержимого модального окна шаблона.

Проверяет: 1. Открытие модального окна при клике на строку таблицы 2. Наличие и содержимое модального окна 3. Наличие тулбара в модальном окне 4. Проверка кнопки закрытия и её подсказки 5. Закрытие модального окна

Source code in tests\e2e\test_templates_tab.py
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
def test_templates_modal_window_content(self, browser: Page) -> None:
    """Тест содержимого модального окна шаблона.

    Проверяет:
    1. Открытие модального окна при клике на строку таблицы
    2. Наличие и содержимое модального окна
    3. Наличие тулбара в модальном окне
    4. Проверка кнопки закрытия и её подсказки
    5. Закрытие модального окна
    """
    # Инициализация страницы шаблонов
    templates_tab = TemplatesTab(browser)

    # Проверка наличия таблицы шаблонов
    templates_tab.should_be_templates_table()

    # Добавляем задержку для загрузки данных
    browser.wait_for_timeout(2000)

    # Открываем модальное окно, кликая на первую строку таблицы
    title = templates_tab.open_template_modal_by_index(0)

    # Добавляем задержку для открытия модального окна
    browser.wait_for_timeout(1000)

    # Проверка открытия модального окна
    templates_tab.should_be_modal_window()

    # Проверка содержимого модального окна
    templates_tab.check_templates_modal_content(title)

    # Закрытие модального окна через кнопку закрытия
    templates_tab.close_modal_window_by_toolbar_button(title)

    # Проверяем, что модальное окно закрылось
    templates_tab.should_not_be_modal_window()

test_templates_modal_window_scrolling(browser)

Тест скроллинга модального окна шаблона.

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

Source code in tests\e2e\test_templates_tab.py
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
def test_templates_modal_window_scrolling(self, browser: Page) -> None:
    """Тест скроллинга модального окна шаблона.

    Проверяет:
    1. Открытие модального окна при клике на строку таблицы
    2. Возможность вертикального скроллинга содержимого модального окна
    3. Закрытие модального окна
    """

    # Инициализация страницы шаблонов
    templates_tab = TemplatesTab(browser)

    # Проверка наличия таблицы шаблонов
    templates_tab.should_be_templates_table()

    # Добавляем задержку для загрузки данных
    browser.wait_for_timeout(2000)

    # Открываем модальное окно, кликая на первую строку таблицы
    title = templates_tab.open_template_modal_by_index(0)

    # Добавляем задержку для открытия модального окна
    browser.wait_for_timeout(1000)

    # Проверка открытия модального окна
    templates_tab.should_be_modal_window()

    # Проверка вертикального скроллинга модального окна
    is_scrollable = templates_tab.check_modal_vertical_scrolling()

    if is_scrollable:
        print("Модальное окно поддерживает вертикальный скроллинг")

        # Прокрутка вниз
        templates_tab.scroll_modal_down()
        browser.wait_for_timeout(1000)

        # Прокрутка вверх
        templates_tab.scroll_modal_up()
        browser.wait_for_timeout(1000)
    else:
        print("Модальное окно не поддерживает вертикальный скроллинг")

    # Закрытие модального окна через кнопку закрытия
    templates_tab.close_modal_window_by_toolbar_button(title)

    # Проверяем, что модальное окно закрылось
    templates_tab.should_not_be_modal_window()

test_templates_tab_content(browser)

Тест содержимого вкладка 'Шаблоны'.

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

Source code in tests\e2e\test_templates_tab.py
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
def test_templates_tab_content(self, browser: Page) -> None:
    """Тест содержимого вкладка 'Шаблоны'.

    Проверяет:
    1. Наличие и корректность тулбара
    2. Наличие таблицы шаблонов
    3. Соответствие содержимого таблицы
    """
    # Инициализация страницы сеансов
    templates_tab = TemplatesTab(browser)

    # Проверка тулбара вкладки
    templates_tab.should_be_toolbar()

    # Проверка наличия таблицы шаблонов
    templates_tab.should_be_templates_table()

    browser.wait_for_timeout(5000)

    # Проверка содержимого таблицы шаблонов
    templates_tab.check_templates_table_content()

test_templates_table_row_highlighting(browser)

Проверка выделения строк в таблице шаблонов.

Проверяет корректность выделения строк при клике на различные позиции: 1. Первая строка 2. Последняя строка 3. Строка в середине таблицы

Source code in tests\e2e\test_templates_tab.py
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
def test_templates_table_row_highlighting(self, browser: Page) -> None:
    """Проверка выделения строк в таблице шаблонов.

    Проверяет корректность выделения строк при клике на различные позиции:
    1. Первая строка
    2. Последняя строка
    3. Строка в середине таблицы
    """

    templates_tab = TemplatesTab(browser)

    # Проверка тулбара вкладки
    templates_tab.should_be_toolbar()

    # Проверка наличия таблицы шаблонов
    templates_tab.should_be_templates_table()

    # Получение количества строк в таблице
    rows_count = templates_tab.get_rows_count()

    # Проверка выделения строк
    templates_tab.check_templates_table_row_highlighting(0)
    templates_tab.check_templates_table_row_highlighting(rows_count - 1)
    templates_tab.check_templates_table_row_highlighting(int(rows_count / 2))

test_templates_table_scrolling(browser)

Проверка вертикального скроллинга таблицы шаблонов.

Проверяет: 1. Возможность вертикальной прокрутки таблицы 2. Видимость строк после прокрутки вниз и вверх 3. Корректность отображения данных после скроллинга

Source code in tests\e2e\test_templates_tab.py
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
def test_templates_table_scrolling(self, browser: Page) -> None:
    """Проверка вертикального скроллинга таблицы шаблонов.

    Проверяет:
    1. Возможность вертикальной прокрутки таблицы
    2. Видимость строк после прокрутки вниз и вверх
    3. Корректность отображения данных после скроллинга
    """

    templates_tab = TemplatesTab(browser)

    browser.wait_for_timeout(2000)

    # Проверка возможности вертикального скроллинга
    is_scrollable = templates_tab.check_templates_table_vertical_scrolling()

    if is_scrollable:
        print("Таблица поддерживает вертикальный скроллинг")

        # Прокрутка вниз
        templates_tab.scroll_templates_table_down()

        browser.wait_for_timeout(1000)

        # Проверка видимости последней строки после прокрутки
        templates_tab.check_templates_table_last_row_visibility()

        # Прокрутка вверх
        templates_tab.scroll_templates_table_up()

        browser.wait_for_timeout(1000)

        # Проверка видимости первой строки после прокрутки
        templates_tab.check_templates_table_first_row_visibility()
    else:
        print("Таблица не поддерживает вертикальный скроллинг")

        # Проверка видимости первой строки
        templates_tab.check_templates_table_first_row_visibility()