Актуализация тестов панели 'Настройки' в соответствии с последними изменениями UI

main
nsubbot 2026-04-13 09:58:02 +03:00
parent cab4f18f55
commit 57d8a0466d
8 changed files with 124 additions and 63 deletions

View File

@ -153,7 +153,12 @@ class SelectionBarComponent(BaseComponent):
self.selection_bar_locator.click(force=True)
# Ждем появления выпадающего списка
self.page.locator(SelectionBarLocators.LIST_ACTIVE).wait_for(state="attached")
if self.page.locator(SelectionBarLocators.LIST_ACTIVE).count() > 1:
self.page.locator(SelectionBarLocators.LIST_ACTIVE).last.wait_for(state="attached")
else:
self.page.locator(SelectionBarLocators.LIST_ACTIVE).wait_for(state="attached")
#self.page.locator(SelectionBarLocators.LIST_ACTIVE).wait_for(state="attached")
# self.wait_for_timeout(1500)
def select_value(self, name: str) -> None:

View File

@ -99,7 +99,6 @@ class BackupSettingsTab(BasePage):
dump_selector = self.streaming_data_settings.get_content_item("streaming_data_dump_selector")
dump_selector.clear_selections()
def create_inventory_copy(self) -> None:
"""Создать резервную копию Системы."""

View File

@ -296,6 +296,19 @@ class LDAPAuthSettingsTab(BasePage):
if name == "password_hidden_icon":
is_hidden_state = item.is_password_hidden()
assert is_hidden_state, "Password hidden icon should be in hidden state"
hidden_password = self.get_password_setting_value()
self.click_password_hidden_icon()
is_hidden_state = item.is_password_hidden()
assert not is_hidden_state, "Password hidden icon should be in viewed state"
viewed_password = self.get_password_setting_value()
assert len(hidden_password) == len(viewed_password), \
"The lengths of hidden and viewed passwords should be equal"
self.click_password_hidden_icon()
is_hidden_state = item.is_password_hidden()
assert is_hidden_state, "Password hidden icon should be in hidden state"
def should_be_toolbar(self) -> None:
"""Проверяет наличие тулбара страницы, наличие и функциональность кнопок тулбара.

View File

@ -168,8 +168,6 @@ class SessionSettingsTab(BasePage):
field.input_value(value)
# temporararily
self.click_cancel_button()
# self.click_save_button()
# alert_type = self.alert.get_alert_type()

View File

@ -220,12 +220,11 @@ class TestCurrentSessionsTab:
Проверяет:
1. Создание нового пользователя
2. Вход нового пользователя в систему
3. Проверка наличия сеанса нового пользователя
4. Выход нового пользователя из системы (logout)
5. Вход в систему пользователя admin
6. Удаление сеанса нового пользователя
7. Проверка отсутствия сеанса нового пользователя
8. Удаление пользователя выполняется автоматически фикстурой cleanup_users
3. Вход в систему пользователя admin
4. Проверка наличия сеанса нового пользователя
5. Удаление сеанса нового пользователя
6. Проверка отсутствия сеанса нового пользователя
7. Удаление пользователя выполняется автоматически фикстурой cleanup_users
"""
user_data = {"name": "TestUserForManualDeletion", "role": "Администратор", "password": "qwerty1234567"}
@ -445,9 +444,6 @@ class TestCurrentSessionsTab:
# Проверка наличия сеанса в таблице
sessions_tab.should_be_session_in_table(new_user_token)
# Выход из системы нового пользователя
new_mp.do_logout()
# Авторизация администратором
admin_lp = LoginPage(browser)
admin_lp.do_login()
@ -551,6 +547,8 @@ class TestCurrentSessionsTab:
print("Ожидание 15 минут для автоматического удаления сеанса...")
browser.wait_for_timeout(901000) # 15 минут 1 секунда в миллисекундах
# TO-DO: Должна быть проверка перехода на страницу логина для текущего пользователя, fix 890
# Авторизация администратором
admin_lp = LoginPage(browser)
admin_lp.do_login()

View File

@ -74,7 +74,7 @@ class TestSessionSettingsTab:
else:
print(f"Error request session setings data from API: {response.status_text}")
#@pytest.mark.develop
# @pytest.mark.develop
def test_edit_session_settings(self, browser: Page) -> None:
"""Тест проверки возможности редактирования выбранных полей формы настройки времени жизни сеансов.
@ -91,12 +91,14 @@ class TestSessionSettingsTab:
session_settings_tab.edit_settings(new_settings)
# temporarily
# updated_settings = session_settings_tab.get_settings_values()
updated_settings = session_settings_tab.get_settings_values()
# for key, value in new_settings.items():
# updated_value = updated_settings.get(key)
# assert updated_value == value, f"{key} updated value {updated_value} is not equal expected value {value}"
for key, value in new_settings.items():
updated_value = updated_settings.get(key)
assert updated_value == value, f"{key} updated value {updated_value} is not equal expected value {value}"
# temporarily
session_settings_tab.click_cancel_button()
# @pytest.mark.develop
def test_edit_session_setting_by_arrow(self, browser: Page) -> None:

View File

@ -69,7 +69,7 @@ class TestBackupSettingsTab:
if response_body:
expected_inventory_settings = response_body[0].copy()
if len(expected_inventory_settings) == 0:
# запрос дефолтных значений настройки 'Инвентаризация/Параметры планировщика'
default_settings = {}
@ -79,16 +79,16 @@ class TestBackupSettingsTab:
if response_body:
default_settings = response_body["fields"].copy()
expected_inventory_settings["auto_backup"] = self._get_default_value("auto_backup",
expected_inventory_settings["auto_backup"] = self._get_default_value("auto_backup",
default_settings)
expected_inventory_settings["backup_limitation"] = self._get_default_value("backup_limitation",
default_settings)
# Проверка соответствия для значений настройки 'Инвентаризация/Параметры планировщика'
inventory_scheduler_settings = backup_settings_tab.get_inventory_scheduler_settings_values()
inventory_auto_backup = inventory_scheduler_settings.get("auto_backup")
inventory_backup_limitation = inventory_scheduler_settings.get("backup_limitation")
if inventory_auto_backup:
expected = expected_inventory_settings["auto_backup"]
assert inventory_auto_backup == expected,\
@ -96,7 +96,7 @@ class TestBackupSettingsTab:
is not equal expected {expected} for field 'Время создания резервной копии'"
else:
assert False, "No value setting for field 'Время создания резервной копии'"
if inventory_backup_limitation:
expected = expected_inventory_settings["backup_limitation"]
assert inventory_backup_limitation == expected,\
@ -113,7 +113,7 @@ class TestBackupSettingsTab:
if response_body:
expected_sd_settings = response_body[0].copy()
if len(expected_sd_settings) == 0:
# запрос дефолтных значений настройки 'Потоковые данные'
default_sd_settings = {}
@ -128,32 +128,32 @@ class TestBackupSettingsTab:
"data_limitation_default", default_sd_settings)
expected_sd_settings["interval_limitation_default"] = self._get_default_value(
"interval_limitation_default", default_sd_settings)
expected_sd_settings["data_limitation_logs"] = self._get_default_value("data_limitation_logs",
expected_sd_settings["data_limitation_logs"] = self._get_default_value("data_limitation_logs",
default_sd_settings)
expected_sd_settings["interval_limitation_logs"] = self._get_default_value(
"interval_limitation_logs", default_sd_settings)
expected_sd_settings["data_limitation_metrics"] = self._get_default_value("data_limitation_metrics",
expected_sd_settings["data_limitation_metrics"] = self._get_default_value("data_limitation_metrics",
default_sd_settings)
expected_sd_settings["interval_limitation_metrics"] = self._get_default_value(
"interval_limitation_metrics",
default_sd_settings)
expected_sd_settings["data_limitation_syslog"] = self._get_default_value("data_limitation_syslog",
expected_sd_settings["data_limitation_syslog"] = self._get_default_value("data_limitation_syslog",
default_sd_settings)
expected_sd_settings["interval_limitation_syslog"] = self._get_default_value(
"interval_limitation_syslog", default_sd_settings)
expected_sd_settings["data_limitation_tasks"] = self._get_default_value("data_limitation_tasks",
expected_sd_settings["data_limitation_tasks"] = self._get_default_value("data_limitation_tasks",
default_sd_settings)
expected_sd_settings["interval_limitation_tasks"] = self._get_default_value(
"interval_limitation_tasks", default_sd_settings)
# Проверка соответствия для значений настроек 'Потоковые данные и Параметры планировщика'
dates = {"day":"ДЕНЬ", "hour":"ЧАС", "month":"МЕСЯЦ", "year":"ГОД"}
streaming_data_scheduler_settings = backup_settings_tab.get_streaming_data_scheduler_settings_values()
sd_auto_backup = streaming_data_scheduler_settings.get("auto_backup")
streaming_data_settings = backup_settings_tab.get_streaming_data_settings_values()
if sd_auto_backup:
expected = expected_sd_settings["auto_backup"]
assert sd_auto_backup == expected,\
@ -161,8 +161,8 @@ class TestBackupSettingsTab:
is not equal expected {expected} for field 'Время создания резервной копии'"
else:
assert False, "No value setting for field 'Время создания резервной копии' streaming data"
settings_list = streaming_data_settings.keys()
settings_list = streaming_data_settings.keys()
for setting in settings_list:
expected = expected_sd_settings[setting]
if dates.get(expected):
@ -306,6 +306,14 @@ class TestBackupSettingsTab:
# Инициализация страницы сеансов
backup_settings_tab = BackupSettingsTab(browser)
# считываем и запоминаем текущие знчения
orig_inventory_scheduler_settings = backup_settings_tab.get_inventory_scheduler_settings_values()
orig_auto_backup = orig_inventory_scheduler_settings.get("auto_backup")
assert orig_auto_backup, "Сouldn't read the value of 'auto backup' from inventory scheduler settings"
orig_backup_limitation = orig_inventory_scheduler_settings.get("backup_limitation")
assert orig_backup_limitation, "Сouldn't read the value of 'backup limitation' from inventory scheduler settings"
# устанавливаем новые значения
backup_settings_tab.click_edit_button()
backup_settings_tab.input_inventory_backup_creation_time("0 0 22 * * 7")
@ -314,6 +322,9 @@ class TestBackupSettingsTab:
backup_settings_tab.decrease_inventory_backups_number()
backup_settings_tab.increase_inventory_backups_number()
backup_settings_tab.click_save_button()
# проверка ожидаемых значений
inventory_scheduler_settings = backup_settings_tab.get_inventory_scheduler_settings_values()
inventory_auto_backup = inventory_scheduler_settings["auto_backup"]
inventory_backup_limitation = inventory_scheduler_settings["backup_limitation"]
@ -324,70 +335,86 @@ class TestBackupSettingsTab:
f"Actual value '{inventory_backup_limitation}' \
is not equal expected '6' for field 'Количество резервных копий'"
# temporarily until fix 1280
backup_settings_tab.click_cancel_button()
# восстановление ранее сохраненных значений
backup_settings_tab.click_edit_button()
backup_settings_tab.input_inventory_backup_creation_time(orig_auto_backup)
backup_settings_tab.input_inventory_backups_number(orig_backup_limitation)
backup_settings_tab.click_save_button()
# @pytest.mark.develop
@pytest.mark.develop
def test_backup_settings_tab_set_streaming_data_settings(self, browser: Page) -> None:
"""Тест проверки возможности изменения значения настроек 'Потоковые данные'."""
# Инициализация страницы сеансов
backup_settings_tab = BackupSettingsTab(browser)
# считываем и запоминаем текущие знчения
orig_streaming_data_settings = backup_settings_tab.get_streaming_data_settings_values()
for name in orig_streaming_data_settings:
val = orig_streaming_data_settings.get(name)
assert val, f"Сouldn't read the value of '{name}' from inventory scheduler settings"
orig_streaming_data_scheduler_settings = backup_settings_tab.get_streaming_data_scheduler_settings_values()
orig_auto_backup = orig_streaming_data_scheduler_settings.get("auto_backup")
assert orig_auto_backup, "Сouldn't read the value of 'auto backup' from streaming data scheduler settings"
# устанавливаем новые значения
backup_settings_tab.click_edit_button()
backup_settings_tab.input_audit_time_period("3", "месяц")
backup_settings_tab.input_audit_time_period("4", "месяц")
backup_settings_tab.increase_audit_time_period()
backup_settings_tab.decrease_audit_time_period()
backup_settings_tab.input_logs_time_period("3", "месяц")
backup_settings_tab.input_logs_time_period("4", "месяц")
backup_settings_tab.increase_logs_time_period()
backup_settings_tab.decrease_logs_time_period()
backup_settings_tab.input_metrics_time_period("3", "месяц")
backup_settings_tab.input_metrics_time_period("4", "месяц")
backup_settings_tab.increase_metrics_time_period()
backup_settings_tab.decrease_metrics_time_period()
backup_settings_tab.input_syslog_time_period("3", "месяц")
backup_settings_tab.input_syslog_time_period("4", "месяц")
backup_settings_tab.increase_syslog_time_period()
backup_settings_tab.decrease_syslog_time_period()
backup_settings_tab.input_tasks_time_period("3", "месяц")
backup_settings_tab.input_tasks_time_period("4", "месяц")
backup_settings_tab.increase_tasks_time_period()
backup_settings_tab.decrease_tasks_time_period()
backup_settings_tab.input_streaming_data_backup_creation_time("0 0 22 * * 7")
backup_settings_tab.click_save_button()
# проверка ожидаемых значений
streaming_data_settings = backup_settings_tab.get_streaming_data_settings_values()
data_limitation_default = streaming_data_settings["data_limitation_default"]
assert data_limitation_default == "3", \
f"Actual value '{data_limitation_default}' is not equal expected '3' for category 'Аудит'"
assert data_limitation_default == "4", \
f"Actual value '{data_limitation_default}' is not equal expected '4' for category 'Аудит'"
interval_limitation_default = streaming_data_settings["interval_limitation_default"]
assert interval_limitation_default == "месяц", \
assert interval_limitation_default == "МЕСЯЦ", \
f"Actual value '{interval_limitation_default}' is not equal expected 'месяц' for category 'Аудит'"
data_limitation_logs = streaming_data_settings["data_limitation_logs"]
assert data_limitation_logs == "3", \
f"Actual value '{data_limitation_logs}' is not equal expected '3' for category 'Логи'"
assert data_limitation_logs == "4", \
f"Actual value '{data_limitation_logs}' is not equal expected '4' for category 'Логи'"
interval_limitation_logs = streaming_data_settings["interval_limitation_logs"]
assert interval_limitation_logs == "месяц", \
assert interval_limitation_logs == "МЕСЯЦ", \
f"Actual value '{interval_limitation_logs}' is not equal expected 'месяц' for category 'Логи'"
data_limitation_metrics = streaming_data_settings["data_limitation_metrics"]
assert data_limitation_metrics == "3", \
f"Actual value '{data_limitation_metrics}' is not equal expected '3' for category 'Метрики'"
assert data_limitation_metrics == "4", \
f"Actual value '{data_limitation_metrics}' is not equal expected '4' for category 'Метрики'"
interval_limitation_metrics = streaming_data_settings["interval_limitation_metrics"]
assert interval_limitation_metrics == "месяц", \
assert interval_limitation_metrics == "МЕСЯЦ", \
f"Actual value '{interval_limitation_metrics}' is not equal expected 'месяц' for category 'Метрики'"
data_limitation_syslog = streaming_data_settings["data_limitation_syslog"]
assert data_limitation_syslog == "3", \
f"Actual value '{data_limitation_syslog}' is not equal expected '3' for category 'Системный лог'"
assert data_limitation_syslog == "4", \
f"Actual value '{data_limitation_syslog}' is not equal expected '4' for category 'Системный лог'"
interval_limitation_syslog = streaming_data_settings["interval_limitation_syslog"]
assert interval_limitation_syslog == "месяц", \
assert interval_limitation_syslog == "МЕСЯЦ", \
f"Actual value '{interval_limitation_syslog}' is not equal expected 'месяц' for category 'Системный лог'"
data_limitation_tasks = streaming_data_settings["data_limitation_tasks"]
assert data_limitation_tasks == "3", \
f"Actual value '{data_limitation_tasks}' is not equal expected '3' for category 'Действия'"
assert data_limitation_tasks == "4", \
f"Actual value '{data_limitation_tasks}' is not equal expected '4' for category 'Действия'"
interval_limitation_tasks = streaming_data_settings["interval_limitation_tasks"]
assert interval_limitation_tasks == "месяц", \
assert interval_limitation_tasks == "МЕСЯЦ", \
f"Actual value '{interval_limitation_tasks}' is not equal expected 'месяц' for category 'Действия'"
streaming_data_scheduler_settings = backup_settings_tab.get_streaming_data_scheduler_settings_values()
@ -396,15 +423,34 @@ class TestBackupSettingsTab:
f"Actual value '{streaming_data_auto_backup}' \
is not equal expected '0 0 22 * * 7' for field 'Потоковые данные Время создания резервной копии'"
# temporarily until fix 1280
backup_settings_tab.click_cancel_button()
# восстановление ранее сохраненных значений
backup_settings_tab.click_edit_button()
backup_settings_tab.wait_for_timeout(1000)
backup_settings_tab.input_audit_time_period(orig_streaming_data_settings["data_limitation_default"],
orig_streaming_data_settings["interval_limitation_default"])
backup_settings_tab.wait_for_timeout(1000)
backup_settings_tab.input_logs_time_period(orig_streaming_data_settings["data_limitation_logs"],
orig_streaming_data_settings["interval_limitation_logs"])
backup_settings_tab.wait_for_timeout(1000)
backup_settings_tab.input_metrics_time_period(orig_streaming_data_settings["data_limitation_metrics"],
orig_streaming_data_settings["interval_limitation_metrics"])
backup_settings_tab.wait_for_timeout(1000)
backup_settings_tab.input_syslog_time_period(orig_streaming_data_settings["data_limitation_syslog"],
orig_streaming_data_settings["interval_limitation_syslog"])
backup_settings_tab.wait_for_timeout(1000)
backup_settings_tab.input_tasks_time_period(orig_streaming_data_settings["data_limitation_tasks"],
orig_streaming_data_settings["interval_limitation_tasks"])
backup_settings_tab.wait_for_timeout(1000)
backup_settings_tab.input_streaming_data_backup_creation_time(orig_auto_backup)
backup_settings_tab.wait_for_timeout(1000)
backup_settings_tab.click_save_button()
# @pytest.mark.develop
@pytest.mark.skip(reason="Временно пока работает неправильно")
def test_backup_settings_tab_check_auto_copy_creation(self, browser: Page) -> None:
"""Тест проверки создания резервных копий в автоматическом режиме на примере блока 'Инвентаризация'."""
# делать backup один раз в минуту
# делать backup один раз в минуту
requested_creation_time = "* */1 * * * *"
# Инициализация страницы сеансов
@ -423,10 +469,10 @@ class TestBackupSettingsTab:
backup_settings_tab.input_inventory_backup_creation_time(requested_creation_time)
backup_settings_tab.click_save_button()
current_date = datetime.now(timezone.utc)
current_ts = current_date.timestamp()
backup_settings_tab.wait_for_timeout(time_to_wait*60000)
backup_settings_tab.click_edit_button()

View File

@ -61,7 +61,7 @@ class TestCertificatesTab:
# Проверка элементов интерфейса
certificates_tab.check_content()
# @pytest.mark.develop
# @pytest.mark.develop
def test_certificates_tab_check_viewed_certificate(self, browser: Page) -> None:
"""Проверка соответствия выводимого сертификата информации из базы данных."""