Добавлены тесты уведомлений
parent
a4fecf5d68
commit
743815cab4
|
|
@ -12,10 +12,10 @@ from components_derived.modal_edit_rack import ModalEditRack, RackEditData
|
|||
from pages.login_page import LoginPage
|
||||
from pages.main_page import MainPage
|
||||
from pages.rack_page import RackPage
|
||||
from components.alert_component import AlertComponent
|
||||
|
||||
|
||||
logger = get_logger("CREATE_RACK_ELEMENT_TEST")
|
||||
|
||||
logger.setLevel("INFO")
|
||||
|
||||
# @pytest.mark.smoke
|
||||
|
|
@ -137,6 +137,12 @@ class TestCreateRackElement:
|
|||
# Нажимаем кнопку создания
|
||||
create_child_frame.click_add_button()
|
||||
|
||||
# Проверяем уведомление об успешном создании
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = f"Элемент {rack_name} создан"
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
def _delete_rack_from_context_menu(self, browser: Page, rack_name: str) -> None:
|
||||
"""Удаляет стойку через контекстное меню.
|
||||
|
||||
|
|
@ -171,22 +177,17 @@ class TestCreateRackElement:
|
|||
rack_edit.click_remove_button()
|
||||
self.main_page.wait_for_timeout(1000)
|
||||
|
||||
# 4. Проверяем уведомление об успешном удалении - требуется создать разработчику (заведена задача)
|
||||
# Создаем экземпляр фрейма для доступа к alert компоненту
|
||||
# create_child_frame = CreateChildElementFrame(browser)
|
||||
# 4. Проверяем уведомление об успешном удалении
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = "Успешно удалено"
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
|
||||
# Проверяем наличие любого alert-окна (не обязательно точного текста)
|
||||
# create_child_frame.alert.check_alert_presence("")
|
||||
|
||||
# Получаем текст alert, чтобы убедиться что удаление прошло успешно
|
||||
# alert_text = create_child_frame.alert.get_text()
|
||||
# logger.debug(f"Alert text after deletion: {alert_text}")
|
||||
|
||||
# Проверяем что в тексте есть указание на успешное удаление
|
||||
# assert "удален" in alert_text.lower() or "успешно" in alert_text.lower()
|
||||
# Получаем текст alert для логирования
|
||||
alert_text = alert.get_text()
|
||||
logger.debug(f"Alert text after deletion: {alert_text}")
|
||||
|
||||
# Закрываем alert
|
||||
# create_child_frame.alert.close_alert()
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
logger.debug("Rack deletion completed")
|
||||
|
||||
|
|
@ -248,17 +249,19 @@ class TestCreateRackElement:
|
|||
# Проверяем валидацию полей
|
||||
logger.debug("Checking validation results")
|
||||
|
||||
alert = AlertComponent(create_child_frame.page)
|
||||
|
||||
# Обрабатываем alert-окна
|
||||
if not height_value:
|
||||
logger.debug("Expecting height validation alert")
|
||||
create_child_frame.alert.check_alert_presence(expected_alert_height)
|
||||
create_child_frame.alert.close_alert_by_text(expected_alert_height)
|
||||
alert.check_alert_presence(expected_alert_height)
|
||||
alert.close_alert_by_text(expected_alert_height)
|
||||
logger.debug("Height alert handled")
|
||||
|
||||
if not depth_value:
|
||||
logger.debug("Expecting depth validation alert")
|
||||
create_child_frame.alert.check_alert_presence(expected_alert_depth)
|
||||
create_child_frame.alert.close_alert_by_text(expected_alert_depth)
|
||||
alert.check_alert_presence(expected_alert_depth)
|
||||
alert.close_alert_by_text(expected_alert_depth)
|
||||
logger.debug("Depth alert handled")
|
||||
|
||||
# Проверяем подсветку обязательных полей
|
||||
|
|
@ -320,22 +323,23 @@ class TestCreateRackElement:
|
|||
# Нажимаем кнопку "Добавить"
|
||||
create_child_frame.click_add_button()
|
||||
|
||||
# 1. Проверяем уведомление об успешном создании стойки - требуется создать разработчику (заведена задача)
|
||||
# Проверяем наличие alert-окна
|
||||
# create_child_frame.alert.check_alert_presence("")
|
||||
# Проверяем уведомление об успешном создании стойки
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = f"Элемент {rack_name} создан"
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
|
||||
# Получаем текст alert
|
||||
# alert_text = create_child_frame.alert.get_text()
|
||||
# logger.debug(f"Alert text after creation: {alert_text}")
|
||||
alert_text = alert.get_text()
|
||||
logger.debug(f"Alert text after creation: {alert_text}")
|
||||
|
||||
# Проверяем, что в тексте есть указание на успешное создание
|
||||
# assert "создан" in alert_text.lower() or "успешно" in alert_text.lower()
|
||||
# assert final_rack_name in alert_text
|
||||
assert "создан" in alert_text.lower()
|
||||
assert rack_name in alert_text
|
||||
|
||||
# Закрываем alert
|
||||
# create_child_frame.alert.close_alert()
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
# 2. Проверяем, что стойка создана и отображается
|
||||
# Проверяем, что стойка создана и отображается
|
||||
logger.debug(f"Verifying that rack '{rack_name}' was created...")
|
||||
|
||||
# Обновляем навигационную панель
|
||||
|
|
@ -346,7 +350,6 @@ class TestCreateRackElement:
|
|||
assert rack_exists, f"Rack '{rack_name}' should be visible in navigation panel after creation"
|
||||
|
||||
logger.debug(f"Rack '{rack_name}' is visible in navigation panel")
|
||||
|
||||
logger.debug("Test for creating 'Rack' child element completed successfully")
|
||||
|
||||
def test_create_rack_content(self, browser: Page) -> None:
|
||||
|
|
@ -431,15 +434,16 @@ class TestCreateRackElement:
|
|||
create_child_frame.wait_for_timeout(2000)
|
||||
|
||||
# Проверяем наличие alert-окна с сообщением о дублирующемся имени
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = f"Имя {rack_name} уже используется"
|
||||
create_child_frame.alert.check_alert_presence(expected_alert_text)
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
|
||||
# Проверяем, что остались на странице создания (стойка не создана)
|
||||
create_child_frame.check_toolbar_title('Создать дочерний элемент в')
|
||||
|
||||
# Закрываем alert-окно с помощью кнопки закрытия
|
||||
create_child_frame.wait_for_timeout(2000)
|
||||
create_child_frame.alert.close_alert_by_text(expected_alert_text)
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
logger.debug("System prevented creating rack with duplicate name")
|
||||
|
||||
|
|
@ -571,20 +575,21 @@ class TestCreateRackElement:
|
|||
create_child_frame.click_add_button()
|
||||
create_child_frame.wait_for_timeout(500)
|
||||
|
||||
# Проверяем уведомление об успешном создании стойки - требуется создать разработчику (заведена задача)
|
||||
# Проверяем наличие alert-окна
|
||||
# create_child_frame.alert.check_alert_presence("")
|
||||
# Проверяем уведомление об успешном создании стойки
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = f"Элемент {final_rack_name} создан"
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
|
||||
# Получаем текст alert
|
||||
# alert_text = create_child_frame.alert.get_text()
|
||||
# logger.debug(f"Alert text after creation: {alert_text}")
|
||||
alert_text = alert.get_text()
|
||||
logger.debug(f"Alert text after creation: {alert_text}")
|
||||
|
||||
# Проверяем что в тексте есть указание на успешное создание
|
||||
# assert "создан" in alert_text.lower() or "успешно" in alert_text.lower()
|
||||
# assert final_rack_name in alert_text
|
||||
assert "создан" in alert_text.lower()
|
||||
assert final_rack_name in alert_text
|
||||
|
||||
# Закрываем alert
|
||||
# create_child_frame.alert.close_alert()
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
logger.debug("Required fields validation test completed successfully")
|
||||
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ from pages.rack_page import RackPage
|
|||
from components_derived.accounting_objects.rack_maker import RackObjectMaker, RackData
|
||||
from components_derived.frames.create_child_element_frame import CreateChildElementFrame
|
||||
from components_derived.modal_edit_rack import ModalEditRack, RackEditData
|
||||
from components.alert_component import AlertComponent
|
||||
from tools.logger import get_logger
|
||||
|
||||
# Константы
|
||||
|
|
@ -101,6 +102,12 @@ class TestRackTab:
|
|||
# Нажимаем кнопку создания
|
||||
create_child_frame.click_add_button()
|
||||
|
||||
# Проверяем уведомление об успешном создании
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = f"Элемент {rack_name} создан"
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
logger.info(f"Rack '{rack_name}' created successfully")
|
||||
|
||||
def _delete_rack_from_context_menu(self, browser: Page, rack_name: str) -> None:
|
||||
|
|
@ -138,6 +145,12 @@ class TestRackTab:
|
|||
rack_edit.click_remove_button()
|
||||
self.main_page.wait_for_timeout(1000)
|
||||
|
||||
# 4. Проверяем уведомление об успешном удалении
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = "Успешно удалено"
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
logger.info(f"Rack '{rack_name}' deleted successfully")
|
||||
|
||||
@pytest.fixture(scope="function", autouse=True)
|
||||
|
|
@ -237,7 +250,7 @@ class TestRackTab:
|
|||
# Создаем тестовые данные для заполнения всех полей
|
||||
rack_edit_data = RackEditData(
|
||||
# Основные поля
|
||||
name="Test-Rack-Functionality",
|
||||
name=RACK_NAME,
|
||||
serial="SN123456789",
|
||||
inventory="INV987654321",
|
||||
comment="Тестовый комментарий для стойки (обновленный)",
|
||||
|
|
@ -262,6 +275,13 @@ class TestRackTab:
|
|||
# Сохраняем изменения
|
||||
rack_edit.click_done_button()
|
||||
rack_edit.wait_for_timeout(2000)
|
||||
|
||||
# Проверяем уведомление об успешном обновлении
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = "Элемент успешно обновлён"
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
browser.mouse.click(10, 10)
|
||||
|
||||
# Вход в режим редактирования
|
||||
|
|
@ -299,11 +319,10 @@ class TestRackTab:
|
|||
rack_edit.switch_to_tab(ModalEditRack.TAB_IMAGE)
|
||||
|
||||
# Проверяем вкладку
|
||||
assert rack_edit.is_tab_active(ModalEditRack.TAB_IMAGE), \
|
||||
"Image tab should be active"
|
||||
assert rack_edit.is_tab_active(ModalEditRack.TAB_IMAGE), "Image tab should be active"
|
||||
|
||||
# Загружаем изображение если есть
|
||||
test_image_path = os.path.join(os.path.dirname(__file__), "test_image.jpg")
|
||||
test_image_path = os.path.join(os.path.dirname(__file__), "test_edit_rack_image.jpg")
|
||||
if os.path.exists(test_image_path):
|
||||
logger.debug(f"Found test image: {test_image_path}")
|
||||
# Находим input и загружаем файл
|
||||
|
|
@ -321,6 +340,13 @@ class TestRackTab:
|
|||
# Сохраняем
|
||||
rack_edit.click_done_button()
|
||||
rack_page.wait_for_timeout(2000)
|
||||
|
||||
# Проверяем уведомление об успешном обновлении
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = "Элемент успешно обновлён"
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
browser.mouse.click(10, 10)
|
||||
|
||||
@pytest.mark.develop
|
||||
|
|
@ -397,6 +423,13 @@ class TestRackTab:
|
|||
# Сохраняем изменения
|
||||
rack_edit.click_done_button()
|
||||
rack_page.wait_for_timeout(2000)
|
||||
|
||||
# Проверяем уведомление об успешном обновлении
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = "Элемент успешно обновлён"
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
browser.mouse.click(10, 10)
|
||||
|
||||
# Возвращаемся в режим редактирования и проверяем снова
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 5.2 KiB |
|
|
@ -14,10 +14,16 @@ from pages.location_page import LocationPage
|
|||
from pages.login_page import LoginPage
|
||||
from pages.main_page import MainPage
|
||||
from pages.rack_page import RackPage
|
||||
from components.alert_component import AlertComponent
|
||||
from tools.logger import get_logger
|
||||
|
||||
# Константы
|
||||
RACK_NAME = "Test-Rack-Functionality"
|
||||
|
||||
# Инициализация логгера для всего модуля
|
||||
logger = get_logger("RACK_MANAGEMENT_TESTS")
|
||||
logger.setLevel("INFO")
|
||||
|
||||
class TestRackTab:
|
||||
"""Набор тестов для вкладки 'Стойка' в модуле Объекты.
|
||||
|
||||
|
|
@ -63,6 +69,8 @@ class TestRackTab:
|
|||
browser: Страница Playwright
|
||||
rack_name: Имя стойки для создания
|
||||
"""
|
||||
logger.debug(f"Creating rack: {rack_name}")
|
||||
|
||||
# Нажимаем кнопку "Создать" на тулбаре
|
||||
self.location_page.click_create_button()
|
||||
|
||||
|
|
@ -91,6 +99,14 @@ class TestRackTab:
|
|||
# Нажимаем кнопку создания
|
||||
create_child_frame.click_add_button()
|
||||
|
||||
# Проверяем уведомление об успешном создании
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = f"Элемент {rack_name} создан"
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
logger.info(f"Rack '{rack_name}' created successfully")
|
||||
|
||||
def _delete_rack_from_context_menu(self, browser: Page, rack_name: str) -> None:
|
||||
"""Удаляет стойку через контекстное меню.
|
||||
|
||||
|
|
@ -126,6 +142,14 @@ class TestRackTab:
|
|||
rack_edit.click_remove_button()
|
||||
self.main_page.wait_for_timeout(1000)
|
||||
|
||||
# 4. Проверяем уведомление об успешном удалении
|
||||
alert = AlertComponent(browser)
|
||||
expected_alert_text = "Успешно удалено"
|
||||
alert.check_alert_presence(expected_alert_text)
|
||||
alert.close_alert_by_text(expected_alert_text)
|
||||
|
||||
logger.info(f"Rack '{rack_name}' deleted successfully")
|
||||
|
||||
@pytest.fixture(scope="function", autouse=True)
|
||||
def setup(self, browser: Page) -> None:
|
||||
"""Фикстура для подготовки тестового окружения.
|
||||
|
|
@ -158,6 +182,8 @@ class TestRackTab:
|
|||
if not self._check_rack_existance(browser, RACK_NAME):
|
||||
self._create_rack(browser, RACK_NAME)
|
||||
self.main_page.wait_for_timeout(3000)
|
||||
else:
|
||||
logger.info(f"Rack '{RACK_NAME}' already exists")
|
||||
|
||||
# Переходим к стойке для тестирования
|
||||
self.main_page.click_subpanel_item(RACK_NAME, parent="test-zone")
|
||||
|
|
|
|||
Loading…
Reference in New Issue