Skip to content

SessionSettingsTab

Модуль вкладки 'Сеансы/Настройки'.

Содержит класс SessionSettingsTab для работы с полями настройки сессий пользователей.

SessionSettingsTab

Bases: BasePage

Класс для работы с вкладкой 'Сеансы/Настройки'.

Предоставляет методы для взаимодействия с полями настройки сессий пользователей.

Parameters:

Name Type Description Default
page Page

Экземпляр страницы Playwright.

required
Source code in pages\session_settings_tab.py
 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
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
class SessionSettingsTab(BasePage):
    """Класс для работы с вкладкой 'Сеансы/Настройки'.

    Предоставляет методы для взаимодействия с полями настройки сессий пользователей.

    Args:
        page: Экземпляр страницы Playwright.
    """

    def __init__(self, page: Page) -> None:
        """Инициализирует компоненты вкладки 'Сеансы/Настройки'."""

        super().__init__(page)

        locator_button_1 = self.page.get_by_role("navigation").filter(
            has_text=re.compile("Настройки")
        ).get_by_role("button").nth(0)
        locator_button_2 = self.page.get_by_role("navigation").filter(
            has_text=re.compile("Настройки")
        ).get_by_role("button").nth(1)

        self.toolbar = ToolbarComponent(page, "Настройки")
        self.toolbar.add_tooltip_button(locator_button_1, "edit")
        self.toolbar.add_tooltip_button(locator_button_1, "save")
        self.toolbar.add_tooltip_button(locator_button_2, "cancel")

        # Форма для отображения/редактирования полей настроек сессии пользователя
        self.settings_form = SettingsFormComponent(page)

        self.settings_form.add_toolbar_title("Время жизни сеанса")

        admin_setting_label = Text(page,
                                   page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
                                   get_by_text('Администратор'),
                                   "admin_setting_label")
        self.settings_form.add_content_item("admin_setting_label", admin_setting_label)

        loc_admin = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
             get_by_label('Администратор')
        admin_setting = TextInput(page, loc_admin, "admin_setting")
        self.settings_form.add_content_item("admin_setting", admin_setting)

        operator_setting_label = Text(page,
                                   page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
                                   get_by_text('Оператор'),
                                   "operator_setting_label")
        self.settings_form.add_content_item("operator_setting_label", operator_setting_label)

        loc_oper = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
            get_by_label('Оператор')
        operator_setting = TextInput(page, loc_oper, "operator_setting")
        self.settings_form.add_content_item("operator_setting", operator_setting)

        manager_setting_label = Text(page,
                                   page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
                                   get_by_text('Контактное лицо'),
                                   "manager_setting_label")
        self.settings_form.add_content_item("manager_setting_label", manager_setting_label)

        loc_manager = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
            get_by_label('Контактное лицо')
        manager_setting = TextInput(page, loc_manager, "manager_setting")
        self.settings_form.add_content_item("manager_setting", manager_setting)

        inform_secur_user_setting_label = Text(page,
                                   page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
                                   get_by_text('Специалист информационной безопасности'),
                                   "inform_secur_user_setting_label")
        self.settings_form.add_content_item("inform_secur_user_setting_label", inform_secur_user_setting_label)

        loc_inform_secur_user = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
            get_by_label('Специалист информационной безопасности')
        inform_secur_user_setting = TextInput(page, loc_inform_secur_user, "inform_secur_user_setting")
        self.settings_form.add_content_item("inform_secur_user_setting", inform_secur_user_setting)

        collector_setting_label = Text(page,
                                   page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
                                   get_by_text('$collector'),
                                   "collector_setting_label")
        self.settings_form.add_content_item("collector_setting_label", collector_setting_label)

        loc_collector = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
            get_by_label('$collector')
        collector_setting = TextInput(page, loc_collector, "collector_setting")
        self.settings_form.add_content_item("collector_setting", collector_setting)

        # Окно сообщения об успешном/неуспешном сохранении настроек
        self.alert = AlertComponent(page)

    # Действия:
    def click_cancel_button(self) -> None:
        """Нажатие кнопки 'Отменить' на тулбаре."""

        self.toolbar.check_button_visibility("cancel")
        self.toolbar.get_button_by_name("cancel").click()

    def click_edit_button(self) -> None:
        """Нажатие кнопки 'Редактировать' на тулбаре."""

        self.toolbar.check_button_visibility("edit")
        self.toolbar.get_button_by_name("edit").click()

    def click_save_button(self) -> None:
        """Нажатие кнопки 'Сохранить' на тулбаре."""

        self.toolbar.check_button_visibility("save")
        self.toolbar.get_button_by_name("save").click()

    def decrease_setting_value(self, field_name: str) -> None:
        """Уменьшение на единицу значения поля настройки с помощью стрелочки вниз."""

        field = self.get_field_by_name(field_name)
        field.decrease_value()

    def increase_setting_value(self, field_name: str) -> None:
        """Увеличение на единицу значения поля настройки с помощью стрелочки вверх."""

        field = self.get_field_by_name(field_name)
        field.increase_value()

    def get_field_by_name(self, field_name: str) -> TextInput:
        """Возвращает элемент поле ввода по его имени.

        Returns:
            TextInput: Элемент поле ввода.
        """

        if field_name == "administrator":
            field = self.settings_form.get_content_item("admin_setting")
        elif field_name == "operator":
            field = self.settings_form.get_content_item("operator_setting")
        elif field_name == "manager":
            field = self.settings_form.get_content_item("manager_setting")
        elif field_name == "inform_secur_user":
            field = self.settings_form.get_content_item("inform_secur_user_setting")
        elif field_name == '$collector':
            field = self.settings_form.get_content_item("collector_setting")
        else:
            assert False, f"Got unsupported field name {field_name}"
        return field

    def get_label_by_name(self, label_name: str) -> Text:
        """Возвращает элемент название поля ввода по его имени.

        Returns:
            Text: Элемент название поле ввода.
        """

        if label_name == "administrator":
            label = self.settings_form.get_content_item("admin_setting_label")
        elif label_name == "operator":
            label = self.settings_form.get_content_item("operator_setting_label")
        elif label_name == "manager":
            label = self.settings_form.get_content_item("manager_setting_label")
        elif label_name == "inform_secur_user":
            label = self.settings_form.get_content_item("inform_secur_user_setting_label")
        elif label_name == '$collector':
            label = self.settings_form.get_content_item("collector_setting_label")
        else:
            assert False, f"Got unsupported label name {label_name}"
        return label

    def get_setting_value(self, field_name: str) -> str:
        """Возвращает текущее значение требуемого поля настроек.

        Returns:
           str : Текущее значение требуемого поля настроек.
        """

        return self.get_field_by_name(field_name).get_input_value().strip()

    def get_settings_values(self) -> dict:
        """Возвращает словарь с текущими значениями настроек времени жизни сессии.

        Returns:
            dict: Cловарь с текущими значениями настроек времени жизни сессии.
        """

        current_values = {}

        current_values['administrator'] = self.settings_form.get_content_item("admin_setting").\
                                          get_input_value().strip()
        current_values['operator'] = self.settings_form.get_content_item("operator_setting").\
                                          get_input_value().strip()
        current_values['manager'] = self.settings_form.get_content_item("manager_setting").\
                                          get_input_value().strip()
        current_values['inform_secur_user'] = self.settings_form.get_content_item("inform_secur_user_setting").\
                                          get_input_value().strip()
        current_values['$collector'] = self.settings_form.get_content_item("collector_setting").\
                                          get_input_value().strip()
        return current_values

    def edit_settings(self, new_settings: dict) -> None:
        """Изменение текущих значений настроек времени жизни сессии.
        """

        self.click_edit_button()

        for key, value in new_settings.items():
            field = self.get_field_by_name(key)
            field.input_value(value)

        # temporararily
        self.click_cancel_button()

        # self.click_save_button()

        # alert_type = self.alert.get_alert_type()
        # if alert_type == "success":
        #     self.alert.check_alert_presence(' Параметры успешно\n обновлены ')
        #     self.alert.check_alert_absence(' Параметры успешно\n обновлены ')
        # else:
        #     assert False, f"Got unexpected alert type {alert_type}"

    def scroll_down(self) -> None:
        """Скроллинг вниз формы настроек времени жизни сессии.
        """

        locator = self.page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).filter(
                  has_text="Время жизни сеанса")
        self.settings_form.scroll_down(locator)

    def scroll_up(self) -> None:
        """Скроллинг вверх формы настроек времени жизни сессии.
        """

        locator = self.page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).filter(
                  has_text="Время жизни сеанса")
        self.settings_form.scroll_up(locator)

    # Проверки:
    def check_content(self):
        """Проверяет наличие и корректность всех элементов формы."""

        self.should_be_toolbar()
        self.should_be_toolbar_buttons()

        self.should_be_form_toolbar()

        for name in self.settings_form.content_items.keys():
            item = self.settings_form.get_content_item(name)
            item.check_visibility(
                f"Session settings input form item with name '{name}' is missing"
            )

    def check_vertical_scrolling(self) -> bool:
        """Проверка возможности вертикального скроллинга формы настроек времени жизни сессии.
        """

        locator = self.page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).filter(
                  has_text="Время жизни сеанса")
        return self.settings_form.check_vertical_scrolling(locator)

    def should_be_toolbar(self) -> None:
        """Проверяет наличие тулбара вкладки.

        Raises:
            AssertionError: Если тулбар или кнопка редактирования отсутствуют.
        """
        loc = self.page.get_by_role("navigation").filter(
              has_text=re.compile("Настройки")).locator("div").nth(1)
        self.toolbar.check_toolbar_presence_by_locator(loc, "Toolbar with title 'Настройки' is missing")
        self.toolbar.check_button_visibility("edit")

    def should_be_toolbar_buttons(self) -> None:
        """Проверяет наличие и функциональность кнопок тулбара.

        Raises:
            AssertionError: Если кнопки недоступны или подсказки неверны.
        """

        self.toolbar.check_button_visibility("edit")
        self.toolbar.check_button_tooltip("edit", "Редактировать")

        self.toolbar.get_button_by_name("edit").click()
        self.toolbar.check_button_visibility("save")
        self.toolbar.check_button_visibility("cancel")
        self.toolbar.check_button_tooltip("save", "Сохранить")
        self.toolbar.check_button_tooltip("cancel", "Отменить")

        self.toolbar.get_button_by_name("cancel").click()
        self.toolbar.check_button_visibility("edit")

    def should_be_form_toolbar(self) -> None:
        """Проверяет наличие тулбара формы редактирования настроек.

        Raises:
            AssertionError: Если тулбар отсутствует.
        """

        self.settings_form.should_be_toolbar()

    def verify_form_data(self, session_settings: dict) -> None:
        """Проверяет соответствие содержимого полей формы данным из БД.

        Raises:
            AssertionError: Если содержимое поля не соответствует данным из БД.
        """

        for key, value in session_settings.items():
            field_value = ""
            if key == "administrator":
                field_value = self.settings_form.get_content_item("admin_setting").get_input_value().strip()
            elif key == "operator":
                field_value = self.settings_form.get_content_item("operator_setting").get_input_value().strip()
            elif key == "manager":
                field_value = self.settings_form.get_content_item("manager_setting").get_input_value().strip()
            elif key == "inform_secur_user":
                field_value = self.settings_form.get_content_item("inform_secur_user_setting").get_input_value().strip()
            elif key == '$collector':
                field_value = self.settings_form.get_content_item("collector_setting").get_input_value().strip()
            else:
                assert False, f"Got unsupported field name {key}"
            assert field_value == str(value), f"{key} field value {field_value} is not equal value {value} from data base"

__init__(page)

Инициализирует компоненты вкладки 'Сеансы/Настройки'.

Source code in pages\session_settings_tab.py
 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
def __init__(self, page: Page) -> None:
    """Инициализирует компоненты вкладки 'Сеансы/Настройки'."""

    super().__init__(page)

    locator_button_1 = self.page.get_by_role("navigation").filter(
        has_text=re.compile("Настройки")
    ).get_by_role("button").nth(0)
    locator_button_2 = self.page.get_by_role("navigation").filter(
        has_text=re.compile("Настройки")
    ).get_by_role("button").nth(1)

    self.toolbar = ToolbarComponent(page, "Настройки")
    self.toolbar.add_tooltip_button(locator_button_1, "edit")
    self.toolbar.add_tooltip_button(locator_button_1, "save")
    self.toolbar.add_tooltip_button(locator_button_2, "cancel")

    # Форма для отображения/редактирования полей настроек сессии пользователя
    self.settings_form = SettingsFormComponent(page)

    self.settings_form.add_toolbar_title("Время жизни сеанса")

    admin_setting_label = Text(page,
                               page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
                               get_by_text('Администратор'),
                               "admin_setting_label")
    self.settings_form.add_content_item("admin_setting_label", admin_setting_label)

    loc_admin = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
         get_by_label('Администратор')
    admin_setting = TextInput(page, loc_admin, "admin_setting")
    self.settings_form.add_content_item("admin_setting", admin_setting)

    operator_setting_label = Text(page,
                               page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
                               get_by_text('Оператор'),
                               "operator_setting_label")
    self.settings_form.add_content_item("operator_setting_label", operator_setting_label)

    loc_oper = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
        get_by_label('Оператор')
    operator_setting = TextInput(page, loc_oper, "operator_setting")
    self.settings_form.add_content_item("operator_setting", operator_setting)

    manager_setting_label = Text(page,
                               page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
                               get_by_text('Контактное лицо'),
                               "manager_setting_label")
    self.settings_form.add_content_item("manager_setting_label", manager_setting_label)

    loc_manager = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
        get_by_label('Контактное лицо')
    manager_setting = TextInput(page, loc_manager, "manager_setting")
    self.settings_form.add_content_item("manager_setting", manager_setting)

    inform_secur_user_setting_label = Text(page,
                               page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
                               get_by_text('Специалист информационной безопасности'),
                               "inform_secur_user_setting_label")
    self.settings_form.add_content_item("inform_secur_user_setting_label", inform_secur_user_setting_label)

    loc_inform_secur_user = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
        get_by_label('Специалист информационной безопасности')
    inform_secur_user_setting = TextInput(page, loc_inform_secur_user, "inform_secur_user_setting")
    self.settings_form.add_content_item("inform_secur_user_setting", inform_secur_user_setting)

    collector_setting_label = Text(page,
                               page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
                               get_by_text('$collector'),
                               "collector_setting_label")
    self.settings_form.add_content_item("collector_setting_label", collector_setting_label)

    loc_collector = page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).\
        get_by_label('$collector')
    collector_setting = TextInput(page, loc_collector, "collector_setting")
    self.settings_form.add_content_item("collector_setting", collector_setting)

    # Окно сообщения об успешном/неуспешном сохранении настроек
    self.alert = AlertComponent(page)

check_content()

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

Source code in pages\session_settings_tab.py
248
249
250
251
252
253
254
255
256
257
258
259
260
def check_content(self):
    """Проверяет наличие и корректность всех элементов формы."""

    self.should_be_toolbar()
    self.should_be_toolbar_buttons()

    self.should_be_form_toolbar()

    for name in self.settings_form.content_items.keys():
        item = self.settings_form.get_content_item(name)
        item.check_visibility(
            f"Session settings input form item with name '{name}' is missing"
        )

check_vertical_scrolling()

Проверка возможности вертикального скроллинга формы настроек времени жизни сессии.

Source code in pages\session_settings_tab.py
262
263
264
265
266
267
268
def check_vertical_scrolling(self) -> bool:
    """Проверка возможности вертикального скроллинга формы настроек времени жизни сессии.
    """

    locator = self.page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).filter(
              has_text="Время жизни сеанса")
    return self.settings_form.check_vertical_scrolling(locator)

click_cancel_button()

Нажатие кнопки 'Отменить' на тулбаре.

Source code in pages\session_settings_tab.py
107
108
109
110
111
def click_cancel_button(self) -> None:
    """Нажатие кнопки 'Отменить' на тулбаре."""

    self.toolbar.check_button_visibility("cancel")
    self.toolbar.get_button_by_name("cancel").click()

click_edit_button()

Нажатие кнопки 'Редактировать' на тулбаре.

Source code in pages\session_settings_tab.py
113
114
115
116
117
def click_edit_button(self) -> None:
    """Нажатие кнопки 'Редактировать' на тулбаре."""

    self.toolbar.check_button_visibility("edit")
    self.toolbar.get_button_by_name("edit").click()

click_save_button()

Нажатие кнопки 'Сохранить' на тулбаре.

Source code in pages\session_settings_tab.py
119
120
121
122
123
def click_save_button(self) -> None:
    """Нажатие кнопки 'Сохранить' на тулбаре."""

    self.toolbar.check_button_visibility("save")
    self.toolbar.get_button_by_name("save").click()

decrease_setting_value(field_name)

Уменьшение на единицу значения поля настройки с помощью стрелочки вниз.

Source code in pages\session_settings_tab.py
125
126
127
128
129
def decrease_setting_value(self, field_name: str) -> None:
    """Уменьшение на единицу значения поля настройки с помощью стрелочки вниз."""

    field = self.get_field_by_name(field_name)
    field.decrease_value()

edit_settings(new_settings)

Изменение текущих значений настроек времени жизни сессии.

Source code in pages\session_settings_tab.py
209
210
211
212
213
214
215
216
217
218
219
220
def edit_settings(self, new_settings: dict) -> None:
    """Изменение текущих значений настроек времени жизни сессии.
    """

    self.click_edit_button()

    for key, value in new_settings.items():
        field = self.get_field_by_name(key)
        field.input_value(value)

    # temporararily
    self.click_cancel_button()

get_field_by_name(field_name)

Возвращает элемент поле ввода по его имени.

Returns:

Name Type Description
TextInput TextInput

Элемент поле ввода.

Source code in pages\session_settings_tab.py
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
def get_field_by_name(self, field_name: str) -> TextInput:
    """Возвращает элемент поле ввода по его имени.

    Returns:
        TextInput: Элемент поле ввода.
    """

    if field_name == "administrator":
        field = self.settings_form.get_content_item("admin_setting")
    elif field_name == "operator":
        field = self.settings_form.get_content_item("operator_setting")
    elif field_name == "manager":
        field = self.settings_form.get_content_item("manager_setting")
    elif field_name == "inform_secur_user":
        field = self.settings_form.get_content_item("inform_secur_user_setting")
    elif field_name == '$collector':
        field = self.settings_form.get_content_item("collector_setting")
    else:
        assert False, f"Got unsupported field name {field_name}"
    return field

get_label_by_name(label_name)

Возвращает элемент название поля ввода по его имени.

Returns:

Name Type Description
Text Text

Элемент название поле ввода.

Source code in pages\session_settings_tab.py
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
def get_label_by_name(self, label_name: str) -> Text:
    """Возвращает элемент название поля ввода по его имени.

    Returns:
        Text: Элемент название поле ввода.
    """

    if label_name == "administrator":
        label = self.settings_form.get_content_item("admin_setting_label")
    elif label_name == "operator":
        label = self.settings_form.get_content_item("operator_setting_label")
    elif label_name == "manager":
        label = self.settings_form.get_content_item("manager_setting_label")
    elif label_name == "inform_secur_user":
        label = self.settings_form.get_content_item("inform_secur_user_setting_label")
    elif label_name == '$collector':
        label = self.settings_form.get_content_item("collector_setting_label")
    else:
        assert False, f"Got unsupported label name {label_name}"
    return label

get_setting_value(field_name)

Возвращает текущее значение требуемого поля настроек.

Returns:

Name Type Description
str str

Текущее значение требуемого поля настроек.

Source code in pages\session_settings_tab.py
179
180
181
182
183
184
185
186
def get_setting_value(self, field_name: str) -> str:
    """Возвращает текущее значение требуемого поля настроек.

    Returns:
       str : Текущее значение требуемого поля настроек.
    """

    return self.get_field_by_name(field_name).get_input_value().strip()

get_settings_values()

Возвращает словарь с текущими значениями настроек времени жизни сессии.

Returns:

Name Type Description
dict dict

Cловарь с текущими значениями настроек времени жизни сессии.

Source code in pages\session_settings_tab.py
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
def get_settings_values(self) -> dict:
    """Возвращает словарь с текущими значениями настроек времени жизни сессии.

    Returns:
        dict: Cловарь с текущими значениями настроек времени жизни сессии.
    """

    current_values = {}

    current_values['administrator'] = self.settings_form.get_content_item("admin_setting").\
                                      get_input_value().strip()
    current_values['operator'] = self.settings_form.get_content_item("operator_setting").\
                                      get_input_value().strip()
    current_values['manager'] = self.settings_form.get_content_item("manager_setting").\
                                      get_input_value().strip()
    current_values['inform_secur_user'] = self.settings_form.get_content_item("inform_secur_user_setting").\
                                      get_input_value().strip()
    current_values['$collector'] = self.settings_form.get_content_item("collector_setting").\
                                      get_input_value().strip()
    return current_values

increase_setting_value(field_name)

Увеличение на единицу значения поля настройки с помощью стрелочки вверх.

Source code in pages\session_settings_tab.py
131
132
133
134
135
def increase_setting_value(self, field_name: str) -> None:
    """Увеличение на единицу значения поля настройки с помощью стрелочки вверх."""

    field = self.get_field_by_name(field_name)
    field.increase_value()

scroll_down()

Скроллинг вниз формы настроек времени жизни сессии.

Source code in pages\session_settings_tab.py
231
232
233
234
235
236
237
def scroll_down(self) -> None:
    """Скроллинг вниз формы настроек времени жизни сессии.
    """

    locator = self.page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).filter(
              has_text="Время жизни сеанса")
    self.settings_form.scroll_down(locator)

scroll_up()

Скроллинг вверх формы настроек времени жизни сессии.

Source code in pages\session_settings_tab.py
239
240
241
242
243
244
245
def scroll_up(self) -> None:
    """Скроллинг вверх формы настроек времени жизни сессии.
    """

    locator = self.page.locator(SettingsFormLocators.SETTTINGS_FORM_SCROLL_CONTAINER).filter(
              has_text="Время жизни сеанса")
    self.settings_form.scroll_up(locator)

should_be_form_toolbar()

Проверяет наличие тулбара формы редактирования настроек.

Raises:

Type Description
AssertionError

Если тулбар отсутствует.

Source code in pages\session_settings_tab.py
300
301
302
303
304
305
306
307
def should_be_form_toolbar(self) -> None:
    """Проверяет наличие тулбара формы редактирования настроек.

    Raises:
        AssertionError: Если тулбар отсутствует.
    """

    self.settings_form.should_be_toolbar()

should_be_toolbar()

Проверяет наличие тулбара вкладки.

Raises:

Type Description
AssertionError

Если тулбар или кнопка редактирования отсутствуют.

Source code in pages\session_settings_tab.py
270
271
272
273
274
275
276
277
278
279
def should_be_toolbar(self) -> None:
    """Проверяет наличие тулбара вкладки.

    Raises:
        AssertionError: Если тулбар или кнопка редактирования отсутствуют.
    """
    loc = self.page.get_by_role("navigation").filter(
          has_text=re.compile("Настройки")).locator("div").nth(1)
    self.toolbar.check_toolbar_presence_by_locator(loc, "Toolbar with title 'Настройки' is missing")
    self.toolbar.check_button_visibility("edit")

should_be_toolbar_buttons()

Проверяет наличие и функциональность кнопок тулбара.

Raises:

Type Description
AssertionError

Если кнопки недоступны или подсказки неверны.

Source code in pages\session_settings_tab.py
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
def should_be_toolbar_buttons(self) -> None:
    """Проверяет наличие и функциональность кнопок тулбара.

    Raises:
        AssertionError: Если кнопки недоступны или подсказки неверны.
    """

    self.toolbar.check_button_visibility("edit")
    self.toolbar.check_button_tooltip("edit", "Редактировать")

    self.toolbar.get_button_by_name("edit").click()
    self.toolbar.check_button_visibility("save")
    self.toolbar.check_button_visibility("cancel")
    self.toolbar.check_button_tooltip("save", "Сохранить")
    self.toolbar.check_button_tooltip("cancel", "Отменить")

    self.toolbar.get_button_by_name("cancel").click()
    self.toolbar.check_button_visibility("edit")

verify_form_data(session_settings)

Проверяет соответствие содержимого полей формы данным из БД.

Raises:

Type Description
AssertionError

Если содержимое поля не соответствует данным из БД.

Source code in pages\session_settings_tab.py
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
def verify_form_data(self, session_settings: dict) -> None:
    """Проверяет соответствие содержимого полей формы данным из БД.

    Raises:
        AssertionError: Если содержимое поля не соответствует данным из БД.
    """

    for key, value in session_settings.items():
        field_value = ""
        if key == "administrator":
            field_value = self.settings_form.get_content_item("admin_setting").get_input_value().strip()
        elif key == "operator":
            field_value = self.settings_form.get_content_item("operator_setting").get_input_value().strip()
        elif key == "manager":
            field_value = self.settings_form.get_content_item("manager_setting").get_input_value().strip()
        elif key == "inform_secur_user":
            field_value = self.settings_form.get_content_item("inform_secur_user_setting").get_input_value().strip()
        elif key == '$collector':
            field_value = self.settings_form.get_content_item("collector_setting").get_input_value().strip()
        else:
            assert False, f"Got unsupported field name {key}"
        assert field_value == str(value), f"{key} field value {field_value} is not equal value {value} from data base"