Добавлены тесты редактирования полей настроек времени жизни сессий
parent
eb7fe13b02
commit
3b52bb2c76
|
|
@ -48,6 +48,32 @@ class TextInput(BaseElement):
|
||||||
|
|
||||||
return self.locator.get_attribute("type")
|
return self.locator.get_attribute("type")
|
||||||
|
|
||||||
|
def decrease_value(self) -> None:
|
||||||
|
"""Уменьшение на единицу значения поля настройки с помощью стрелочки вниз."""
|
||||||
|
|
||||||
|
logger.info(f'Decrease input value for "{self.name}"')
|
||||||
|
|
||||||
|
attr = self.locator.get_attribute("type")
|
||||||
|
assert attr=="number", "Field type should be number to increase value"
|
||||||
|
|
||||||
|
self.locator.hover()
|
||||||
|
self.locator.wait_for(timeout=500)
|
||||||
|
self.locator.press('ArrowDown')
|
||||||
|
self.locator.wait_for(timeout=500)
|
||||||
|
|
||||||
|
def increase_value(self) -> None:
|
||||||
|
"""Увеличение на единицу значения поля настройки с помощью стрелочки вверх."""
|
||||||
|
|
||||||
|
logger.info(f'Increase input value for "{self.name}"')
|
||||||
|
|
||||||
|
attr = self.locator.get_attribute("type")
|
||||||
|
assert attr=="number", "Field type should be number to increase value"
|
||||||
|
|
||||||
|
self.locator.hover()
|
||||||
|
self.locator.wait_for(timeout=500)
|
||||||
|
self.locator.press('ArrowUp')
|
||||||
|
self.locator.wait_for(timeout=500)
|
||||||
|
|
||||||
def input_value(self, value: str) -> None:
|
def input_value(self, value: str) -> None:
|
||||||
"""Вводит указанное значение в поле.
|
"""Вводит указанное значение в поле.
|
||||||
|
|
||||||
|
|
@ -78,7 +104,7 @@ class TextInput(BaseElement):
|
||||||
|
|
||||||
logger.info(f'Checking that text input "{self.name}" is empty')
|
logger.info(f'Checking that text input "{self.name}" is empty')
|
||||||
expect(self.locator).to_be_empty(), msg
|
expect(self.locator).to_be_empty(), msg
|
||||||
|
|
||||||
def check_editable_input(self, msg: str) -> None:
|
def check_editable_input(self, msg: str) -> None:
|
||||||
"""Проверяет, что поле ввода редактируемое.
|
"""Проверяет, что поле ввода редактируемое.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ from elements.text_input_element import TextInput
|
||||||
from elements.text_element import Text
|
from elements.text_element import Text
|
||||||
from components.toolbar_component import ToolbarComponent
|
from components.toolbar_component import ToolbarComponent
|
||||||
from components.settings_form_component import SettingsFormComponent
|
from components.settings_form_component import SettingsFormComponent
|
||||||
|
from components.alert_component import AlertComponent
|
||||||
from pages.base_page import BasePage
|
from pages.base_page import BasePage
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -99,7 +100,113 @@ class SessionSettingsTab(BasePage):
|
||||||
collector_setting = TextInput(page, loc_collector, "collector_setting")
|
collector_setting = TextInput(page, loc_collector, "collector_setting")
|
||||||
self.settings_form.add_content_item("collector_setting", 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_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 check_content(self):
|
def check_content(self):
|
||||||
"""Проверяет наличие и корректность всех элементов формы."""
|
"""Проверяет наличие и корректность всех элементов формы."""
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,10 @@ class TestSessionSettingsTab:
|
||||||
|
|
||||||
Тесты покрывают следующие сценарии:
|
Тесты покрывают следующие сценарии:
|
||||||
1. test_session_settings_tab_content: Тест содержимого вкладки 'Сеансы/Настройки'
|
1. test_session_settings_tab_content: Тест содержимого вкладки 'Сеансы/Настройки'
|
||||||
|
2. test_edit_session_settings: Тест проверки возможности редактирования выбранных полей формы
|
||||||
|
настройки времени жизни сеансов.
|
||||||
|
3. test_edit_session_setting_by_arrow: Тест проверки возможности увеличения/уменьшения значения
|
||||||
|
выбранного поля формы с помощью стрелочек Вверх/Вниз.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -45,7 +49,7 @@ class TestSessionSettingsTab:
|
||||||
main_page.click_subpanel_item("Настройки", parent="Сеансы")
|
main_page.click_subpanel_item("Настройки", parent="Сеансы")
|
||||||
|
|
||||||
# @pytest.mark.develop
|
# @pytest.mark.develop
|
||||||
def test_sessions_tab_content(self, browser: Page) -> None:
|
def test_session_settings_tab_content(self, browser: Page) -> None:
|
||||||
"""Тест содержимого вкладки 'Сеансы/Настройки'.
|
"""Тест содержимого вкладки 'Сеансы/Настройки'.
|
||||||
|
|
||||||
Проверяет:
|
Проверяет:
|
||||||
|
|
@ -69,3 +73,71 @@ class TestSessionSettingsTab:
|
||||||
session_settings_tab.verify_form_data(session_settings)
|
session_settings_tab.verify_form_data(session_settings)
|
||||||
else:
|
else:
|
||||||
print(f"Error request session setings data from API: {response.status_text}")
|
print(f"Error request session setings data from API: {response.status_text}")
|
||||||
|
|
||||||
|
#@pytest.mark.develop
|
||||||
|
def test_edit_session_settings(self, browser: Page) -> None:
|
||||||
|
"""Тест проверки возможности редактирования выбранных полей формы настройки времени жизни сеансов.
|
||||||
|
|
||||||
|
Проверяет:
|
||||||
|
1. Возможность редактирования выбранных полей формы настройки времени жизни сеансов.
|
||||||
|
"""
|
||||||
|
new_settings = {'administrator': "50",
|
||||||
|
'operator': "20",
|
||||||
|
'manager': "20",
|
||||||
|
"inform_secur_user": "25"}
|
||||||
|
|
||||||
|
# Инициализация страницы сеансов
|
||||||
|
session_settings_tab = SessionSettingsTab(browser)
|
||||||
|
|
||||||
|
session_settings_tab.edit_settings(new_settings)
|
||||||
|
|
||||||
|
# temporarily
|
||||||
|
# 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}"
|
||||||
|
|
||||||
|
# @pytest.mark.develop
|
||||||
|
def test_edit_session_setting_by_arrow(self, browser: Page) -> None:
|
||||||
|
"""Тест проверки возможности увеличения/уменьшения значения выбранного поля формы с помощью стрелочек Вверх/Вниз.
|
||||||
|
"""
|
||||||
|
|
||||||
|
field_name = 'operator'
|
||||||
|
|
||||||
|
# Инициализация страницы сеансов
|
||||||
|
session_settings_tab = SessionSettingsTab(browser)
|
||||||
|
|
||||||
|
session_settings_tab.click_edit_button()
|
||||||
|
|
||||||
|
start_value = session_settings_tab.get_setting_value(field_name)
|
||||||
|
expected_value = int(start_value)
|
||||||
|
|
||||||
|
for i in range(5):
|
||||||
|
session_settings_tab.increase_setting_value(field_name)
|
||||||
|
|
||||||
|
current_value = int(session_settings_tab.get_setting_value(field_name))
|
||||||
|
expected_value += 1
|
||||||
|
|
||||||
|
assert current_value == expected_value, \
|
||||||
|
f"Expected value {expected_value} is not equal current value {current_value} for {field_name} setting"
|
||||||
|
|
||||||
|
for j in range(5):
|
||||||
|
session_settings_tab.decrease_setting_value(field_name)
|
||||||
|
|
||||||
|
current_value = int(session_settings_tab.get_setting_value(field_name))
|
||||||
|
expected_value -= 1
|
||||||
|
|
||||||
|
assert current_value == expected_value, \
|
||||||
|
f"Expected value {expected_value} is not equal current value {current_value} for {field_name} setting"
|
||||||
|
|
||||||
|
current_value = int(session_settings_tab.get_setting_value(field_name))
|
||||||
|
assert current_value == int(start_value), \
|
||||||
|
f"Expected value {start_value} is not equal current value {current_value} for {field_name} setting"
|
||||||
|
|
||||||
|
session_settings_tab.click_cancel_button()
|
||||||
|
|
||||||
|
# to be Done
|
||||||
|
# def test_edit_session_setting_boundary_values(self, browser: Page) -> None:
|
||||||
|
# """Тест проверки задания граничных значений выбранного поля формы.
|
||||||
|
# """
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue