From c968b0df534e58ff55e5cbbd128c46ce9001740e Mon Sep 17 00:00:00 2001 From: Roman Burlaka Date: Sat, 24 Jan 2026 20:46:26 +0100 Subject: [PATCH 1/5] AT test_tc_01_001_06_error_existing_item_name --- pages/new_item_page.py | 15 +++++++++++- .../new_item/test_error_message_item_name.py | 24 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 tests/new_item/test_error_message_item_name.py diff --git a/pages/new_item_page.py b/pages/new_item_page.py index f0d83907..57291438 100644 --- a/pages/new_item_page.py +++ b/pages/new_item_page.py @@ -1,7 +1,10 @@ +import allure + +from locators.base_locators import BaseLocators from locators.new_item_locators import NewItemLocators from pages.base_page import BasePage - +loc = NewItemLocators() class NewItemPage(BasePage): def open_new_item_page(self): @@ -11,3 +14,13 @@ def open_new_item_page(self): def is_new_item_page_opened(self) -> bool: self.wait_for_visible(NewItemLocators.SELECT_ITEM_TYPE_SECTION) return self.is_visible(NewItemLocators.SELECT_ITEM_TYPE_SECTION) + + def create_project_with_existing_name(self, name): + with allure.step(f"Enter existing item name: {name}"): + self.page.fill(loc.NAME_FIELD, name) + return self.page.locator(NewItemLocators.ERROR_MESSAGE).inner_text() + + + + + diff --git a/tests/new_item/test_error_message_item_name.py b/tests/new_item/test_error_message_item_name.py new file mode 100644 index 00000000..0bf96a3f --- /dev/null +++ b/tests/new_item/test_error_message_item_name.py @@ -0,0 +1,24 @@ +import allure + +from data.endpoints import Endpoints +from data.enums import ItemType + +from pages.new_item_page import NewItemPage +from utils.generators.project_generator import ProjectGenerator + + +@allure.epic("NewItemPage") +@allure.feature("Handle errors on NewItemPage") +class TestErrorMessageItemName: + generator = ProjectGenerator() + endpoints = Endpoints() + new_item_page = NewItemPage + item_name = generator.generate_folder_name() + + @allure.story("Error: existing item name") + def test_tc_01_001_06_error_existing_item_name(self, create_job, open_page): + job_name = create_job(self.item_name, ItemType.FOLDER) + all_job_page = open_page(NewItemPage, self.endpoints.ALL_NEW_JOB_URL) + error_message = all_job_page.create_project_with_existing_name(job_name) + + assert error_message == f"» A job already exists with the name ‘{self.item_name}’" \ No newline at end of file From 3e63a5349de12a848aa00375385e6e1fb76c0b64 Mon Sep 17 00:00:00 2001 From: Roman Burlaka Date: Sat, 24 Jan 2026 20:54:24 +0100 Subject: [PATCH 2/5] AT test_tc_01_001_06_error_existing_item_name --- tests/new_item/test_error_message_item_name.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/new_item/test_error_message_item_name.py b/tests/new_item/test_error_message_item_name.py index 0bf96a3f..602e65e1 100644 --- a/tests/new_item/test_error_message_item_name.py +++ b/tests/new_item/test_error_message_item_name.py @@ -21,4 +21,4 @@ def test_tc_01_001_06_error_existing_item_name(self, create_job, open_page): all_job_page = open_page(NewItemPage, self.endpoints.ALL_NEW_JOB_URL) error_message = all_job_page.create_project_with_existing_name(job_name) - assert error_message == f"» A job already exists with the name ‘{self.item_name}’" \ No newline at end of file + assert error_message == f"» A job already exists with the name ‘{job_name}’" \ No newline at end of file From 01f3dfeca63c5666d003ada56d1461a992a4b075 Mon Sep 17 00:00:00 2001 From: Roman Burlaka Date: Sat, 24 Jan 2026 20:58:06 +0100 Subject: [PATCH 3/5] AT test_tc_01_001_06_error_existing_item_name --- tests/new_item/test_error_message_item_name.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/new_item/test_error_message_item_name.py b/tests/new_item/test_error_message_item_name.py index 602e65e1..396827c0 100644 --- a/tests/new_item/test_error_message_item_name.py +++ b/tests/new_item/test_error_message_item_name.py @@ -13,7 +13,7 @@ class TestErrorMessageItemName: generator = ProjectGenerator() endpoints = Endpoints() new_item_page = NewItemPage - item_name = generator.generate_folder_name() + item_name = "folder" @allure.story("Error: existing item name") def test_tc_01_001_06_error_existing_item_name(self, create_job, open_page): @@ -21,4 +21,4 @@ def test_tc_01_001_06_error_existing_item_name(self, create_job, open_page): all_job_page = open_page(NewItemPage, self.endpoints.ALL_NEW_JOB_URL) error_message = all_job_page.create_project_with_existing_name(job_name) - assert error_message == f"» A job already exists with the name ‘{job_name}’" \ No newline at end of file + assert error_message == f"» A job already exists with the name ‘folder’" \ No newline at end of file From 81dc6153325b1db0b4d00a46de678610aeabb927 Mon Sep 17 00:00:00 2001 From: Roman Burlaka Date: Sat, 24 Jan 2026 21:21:08 +0100 Subject: [PATCH 4/5] AT test_tc_01_001_06_error_existing_item_name --- pages/new_item_page.py | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/pages/new_item_page.py b/pages/new_item_page.py index 57291438..4ee901ae 100644 --- a/pages/new_item_page.py +++ b/pages/new_item_page.py @@ -1,10 +1,10 @@ import allure -from locators.base_locators import BaseLocators from locators.new_item_locators import NewItemLocators from pages.base_page import BasePage loc = NewItemLocators() + class NewItemPage(BasePage): def open_new_item_page(self): @@ -19,8 +19,3 @@ def create_project_with_existing_name(self, name): with allure.step(f"Enter existing item name: {name}"): self.page.fill(loc.NAME_FIELD, name) return self.page.locator(NewItemLocators.ERROR_MESSAGE).inner_text() - - - - - From f72d5af11b9026d6b4dc24b388cefa15fc70beb6 Mon Sep 17 00:00:00 2001 From: Roman Burlaka Date: Sun, 25 Jan 2026 10:58:27 +0100 Subject: [PATCH 5/5] RF AT test_tc_01_001_06_error_existing_item_name --- pages/new_item_page.py | 5 ++++- tests/new_item/test_error_message_item_name.py | 5 ++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/pages/new_item_page.py b/pages/new_item_page.py index 4ee901ae..083ef270 100644 --- a/pages/new_item_page.py +++ b/pages/new_item_page.py @@ -5,6 +5,7 @@ loc = NewItemLocators() + class NewItemPage(BasePage): def open_new_item_page(self): @@ -18,4 +19,6 @@ def is_new_item_page_opened(self) -> bool: def create_project_with_existing_name(self, name): with allure.step(f"Enter existing item name: {name}"): self.page.fill(loc.NAME_FIELD, name) - return self.page.locator(NewItemLocators.ERROR_MESSAGE).inner_text() + error = self.page.locator(NewItemLocators.ERROR_MESSAGE) + error.hover() + return error.inner_text() diff --git a/tests/new_item/test_error_message_item_name.py b/tests/new_item/test_error_message_item_name.py index 396827c0..205abbe0 100644 --- a/tests/new_item/test_error_message_item_name.py +++ b/tests/new_item/test_error_message_item_name.py @@ -13,12 +13,11 @@ class TestErrorMessageItemName: generator = ProjectGenerator() endpoints = Endpoints() new_item_page = NewItemPage - item_name = "folder" @allure.story("Error: existing item name") def test_tc_01_001_06_error_existing_item_name(self, create_job, open_page): - job_name = create_job(self.item_name, ItemType.FOLDER) + job_name = create_job(self.generator.generate_folder_name(), ItemType.FOLDER) all_job_page = open_page(NewItemPage, self.endpoints.ALL_NEW_JOB_URL) error_message = all_job_page.create_project_with_existing_name(job_name) - assert error_message == f"» A job already exists with the name ‘folder’" \ No newline at end of file + assert error_message == f"» A job already exists with the name ‘{job_name}’" \ No newline at end of file