Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion data/endpoints.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,6 @@ class Endpoints:
MANAGE_URL = "/manage"
SECURITY_REALM_URL = "/securityRealm/"
VIEW_ALL_PAGE_URL = "/view/all/"
ALL_NEW_JOB_URL = "/view/all/newJob"
ALL_NEW_JOB_URL = "/view/all/newJob"

FOLDER_NEW_ITEM_URL = lambda self, folder_name: f"/job/{folder_name}/newJob"

This file was deleted.

This file was deleted.

30 changes: 17 additions & 13 deletions tests/new_item/test_folder_has_distinct_icon_on_dashboard_ya.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,25 @@
import allure

from data.endpoints import Endpoints
from data.enums import ItemType
from pages.base_page import BasePage
from utils.generators.project_generator import ProjectGenerator
from locators.dashboard_locators import DashboardLocators


@allure.title("TC_01.002.05 | New Item > Folder > Verify folder has a distinct icon on the dashboard")
def test_tc_01_002_05_folder_has_distinct_icon(page, create_job, open_page):

folder_name = ProjectGenerator.generate_folder_name()
create_job(folder_name, job_type="folder")
base_page = open_page(BasePage, "/")

locator = DashboardLocators.folder_with_icon(folder_name)
assert base_page.page.locator(locator).is_visible()




@allure.epic("New Item")
@allure.feature("Folder visualization")
class TestFolderIconOnDashboard:
generator = ProjectGenerator()
endpoints = Endpoints()
base_page = BasePage

@allure.story("Folder has distinct icon")
@allure.title("TC_01.002.05 Verify folder has a distinct icon on the dashboard")
def test_tc_01_002_05_folder_has_distinct_icon(self, page, create_job, open_page):
folder_name = self.generator.generate_folder_name()
create_job(folder_name, ItemType.FOLDER)
dashboard_page = open_page(self.base_page, self.endpoints.VIEW_ALL_PAGE_URL)

locator = DashboardLocators.folder_with_icon(folder_name)
assert dashboard_page.page.locator(locator).is_visible()
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,4 @@ def test_tc_01_004_04_job_auto_saved_without_configuration(create_job, page):
create_job(pipeline_name, ItemType.PIPELINE)
page.goto(Endpoints().VIEW_ALL_PAGE_URL)

assert pipeline_name in page.content()



assert pipeline_name in page.content()
23 changes: 23 additions & 0 deletions tests/new_item/test_new_folder_can_be_created_from_dashboard_ya.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import allure

from data.endpoints import Endpoints
from data.enums import ItemType
from pages.base_configuration_page import BaseConfigurationPage
from utils.generators.project_generator import ProjectGenerator


@allure.epic("New Item")
@allure.feature("Folder creation")
class TestFolderCreationFromDashboard:
endpoints = Endpoints()
generator = ProjectGenerator()

@allure.title("TC_01.002.02 Verify new folder can be created from dashboard")
def test_tc_01_002_02_new_folder_can_be_created_from_dashboard(self, page, create_job, open_page):
folder_name = self.generator.generate_folder_name()
create_job(folder_name, job_type=ItemType.FOLDER)

config_url = self.endpoints.JOB_CONFIGURE_URL(folder_name)
config_page = open_page(BaseConfigurationPage, config_url)

assert folder_name in config_page.page.title()
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,4 @@ def test_tc_01_002_04_new_folder_is_empty_by_default(create_job, page):
create_job(folder_name, ItemType.FOLDER)
page.goto(Endpoints().JOB_STATUS_PAGE_URL(folder_name))

expect(page.get_by_text("This folder is empty")).to_be_visible()





expect(page.get_by_text("This folder is empty")).to_be_visible()
40 changes: 40 additions & 0 deletions tests/new_item/test_same_names_items_in_different_folders_ya.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import allure

from data.endpoints import Endpoints
from data.enums import ItemType
from pages.new_item_page import NewItemPage
from locators.new_item_locators import NewItemLocators
from utils.generators.project_generator import ProjectGenerator


@allure.epic("New Item")
@allure.feature("Item Creation in Folders")
class TestSameNameItemsInDifferentFolders:
generator = ProjectGenerator()
endpoints = Endpoints()
item_type = ItemType
locators = NewItemLocators()

def _create_project_in_folder(self, open_page, folder_name, project_name):
new_item_page = open_page(NewItemPage, self.endpoints.FOLDER_NEW_ITEM_URL(folder_name))
new_item_page.page.locator(self.locators.NAME_FIELD).fill(project_name)
new_item_page.page.locator(self.locators.FREESTYLE_PROJECT_TYPE).click()
new_item_page.page.locator(self.locators.OK_BUTTON).click()

new_item_page.page.wait_for_url(f"**/job/{project_name}/**")
return new_item_page

@allure.story("Same name items in different folders")
@allure.title("TC_01.002.07 Verify items with identical names can exist in different folders")
def test_tc_01_002_07_same_names_items_in_different_folders(self, page, create_job, open_page):
folder_1 = self.generator.generate_folder_name()
folder_2 = self.generator.generate_folder_name()
project_name = self.generator.generate_freestyle_name()

create_job(folder_1, self.item_type.FOLDER)
create_job(folder_2, self.item_type.FOLDER)

self._create_project_in_folder(open_page, folder_1, project_name)
config_page_2 = self._create_project_in_folder(open_page, folder_2, project_name)

assert f"/job/{folder_2}/job/{project_name}/" in config_page_2.page.url
35 changes: 26 additions & 9 deletions tests/new_item/test_unique_item_name_constraint_ya.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,33 @@
import allure

from data.endpoints import Endpoints
from data.enums import ItemType
from pages.new_item_page import NewItemPage
from locators.new_item_locators import NewItemLocators
from .unique_item_name_class_test import TestUniqueItemName
from utils.assertions import Assertions
from utils.generators.project_generator import ProjectGenerator


@allure.epic("New Item")
@allure.feature("Item name validation")
class TestUniqueItemName:
endpoints = Endpoints()
assertions = Assertions()
generator = ProjectGenerator()

@allure.story("Unique item name constraint inside a folder")
@allure.title("TC_01.002.06 Verify unique item name constraint inside a folder")
def test_unique_item_name_constraint(self, page, create_job, open_page):
folder_name = self.generator.generate_folder_name()
freestyle_name = self.generator.generate_freestyle_name()

@allure.title("TC_01.002.06 | New Item > Folder > Verify unique item name constraint inside a folder")
def test_unique_item_name_constraint(page, create_job, open_page):
name_validator = TestUniqueItemName()
create_job(name=folder_name, job_type=ItemType.FOLDER)
create_job(name=freestyle_name, job_type=ItemType.FREESTYLE, folder=folder_name)

folder, freestyle = name_validator.setup_unique_item_name(create_job)
duplicate_page = name_validator.attempt_duplicate_creation(open_page, folder, freestyle)
duplicate_page = open_page(NewItemPage, f"{self.endpoints.JOB_STATUS_PAGE_URL(folder_name)}/newJob")
duplicate_page.fill(NewItemLocators.NAME_FIELD, freestyle_name)

page.wait_for_timeout(3000)
duplicate_page.wait_for_visible(NewItemLocators.ERROR_MESSAGE, timeout=5000)

error = duplicate_page.get_text(NewItemLocators.ERROR_MESSAGE)
assert "already exists" in error, f"Expected 'already exists' in: {error}"
error = duplicate_page.get_text(NewItemLocators.ERROR_MESSAGE)
self.assertions.assert_text("already exists", error)
27 changes: 18 additions & 9 deletions tests/new_item/test_verify_visual_selection_ya.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,25 @@
import allure

from data.endpoints import Endpoints
from pages.new_item_page import NewItemPage
from locators.new_item_locators import NewItemLocators
from utils.generators.project_generator import ProjectGenerator


def test_tc_01_004_02_pipeline_type_visual_selection(page, open_page):
"""TC_01.004.02 | New Item > Select an Item type > Verify visual selection of Pipeline type"""

new_item_page = open_page(NewItemPage, "/view/all/newJob")
new_item_page.fill(NewItemLocators.NAME_FIELD, ProjectGenerator.generate_pipeline_name())
new_item_page.click(NewItemLocators.PIPELINE_TYPE)

pipeline_element = new_item_page.page.locator(NewItemLocators.PIPELINE_TYPE)
assert "active" in pipeline_element.get_attribute("class")
@allure.epic("New Item")
@allure.feature("Item type selection")
class TestPipelineTypeVisualSelection:
generator = ProjectGenerator()
endpoints = Endpoints()
new_item_page = NewItemPage

@allure.story("Visual selection of Pipeline type")
@allure.title("TC_01.004.02 Verify visual selection of Pipeline type")
def test_tc_01_004_02_pipeline_type_visual_selection(self, page, open_page):
pipeline_name = self.generator.generate_pipeline_name()
new_item_page = open_page(self.new_item_page, self.endpoints.ALL_NEW_JOB_URL)
new_item_page.fill(NewItemLocators.NAME_FIELD, pipeline_name)
new_item_page.click(NewItemLocators.PIPELINE_TYPE)

pipeline_element = new_item_page.page.locator(NewItemLocators.PIPELINE_TYPE)
assert "active" in pipeline_element.get_attribute("class")
21 changes: 0 additions & 21 deletions tests/new_item/unique_item_name_class_test.py

This file was deleted.