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
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -173,4 +173,8 @@ poetry.toml
# LSP config files
pyrightconfig.json

# End of https://www.toptal.com/developers/gitignore/api/python
# End of https://www.toptal.com/developers/gitignore/api/python

# allure
allure-results
allure-results/
28 changes: 16 additions & 12 deletions conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,10 @@
from dotenv import load_dotenv

from data.user.user import create_user_script, delete_user_script
from pages.base_configuration_page import BaseConfigurationPage
from pages.base_project_page import BaseProjectPage
from utils.functions import load_xml, execute_user_groovy_script
from utils.generators.user_generator import UserGenerator
from utils.jenkins_client import JenkinsAPI
import allure

load_dotenv()
user_generator = UserGenerator()
Expand Down Expand Up @@ -72,13 +71,16 @@ def page(playwright: Playwright, get_cookie):
@pytest.fixture
def create_job(jenkins):
def _create(name, job_type=None, folder=None):
xml = load_xml(job_type)
jenkins.create_item_from_file(
name=name,
config_xml=xml,
folder=folder
)
return name
with allure.step(f"Create job: {name}"):
xml = load_xml(job_type)
jenkins.create_item_from_file(
name=name,
config_xml=xml,
folder=folder
)

return name

return _create

def get_all_jobs():
Expand Down Expand Up @@ -135,7 +137,9 @@ def create_user_fixture():
@pytest.fixture
def open_page(page):
def _open(page_class, url):
class_page = page_class(page, url)
class_page.open()
return class_page
with allure.step(f"Open page with URL: {url}"):
class_page = page_class(page, url)
class_page.open()
return class_page

return _open
5 changes: 4 additions & 1 deletion pages/base_configuration_page.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import allure

from data.data import BaseConfigurationPageData
from pages.base_page import BasePage
from locators.base_locators import BaseLocators
Expand All @@ -24,7 +26,8 @@ def disable_project(self):
)

def save_configuration(self):
self.click(self.locators.SAVE_BUTTON)
with allure.step("Save changes on configuration page"):
self.click(self.locators.SAVE_BUTTON)

def assert_project_disabled_message_is_displayed(self):
assert self.is_visible(
Expand Down
2 changes: 2 additions & 0 deletions pytest.ini
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
[pytest]

addopts = --tracing=retain-on-failure
--alluredir allure-results
--clean-alluredir
cache_dir = /dev/null
2 changes: 2 additions & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,5 @@ pytest-playwright==0.7.2
requests==2.32.5
python-dotenv==1.2.1
faker==39.0.0
allure-pytest==2.15.3

8 changes: 7 additions & 1 deletion tests/pipeline_project/test_pipeline_project.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,28 @@
import allure

from data.enums import ItemType
from data.endpoints import Endpoints
from pages.base_configuration_page import BaseConfigurationPage
from pages.base_project_page import BaseProjectPage
from pages.jenkins_base_page import JenkinsBasePage
from utils.generators.project_generator import ProjectGenerator


@allure.epic("Pipeline")
@allure.feature("Essential features in pipeline")
class TestPipeline:
generator = ProjectGenerator()
endpoints = Endpoints()
item_type = ItemType

@allure.story("Create pipeline")
def test_create_pipeline_project(self, create_job, open_page):
job_name = create_job(self.generator.generate_folder_name(), ItemType.PIPELINE)
folder_project = open_page(JenkinsBasePage, self.endpoints.VIEW_ALL_PAGE_URL)
name = folder_project.get_created_job_by_name(job_name)

assert name == job_name

@allure.story("Create pipeline with description")
def test_tc_03_002_01_create_project_with_description(self, page, create_job, open_page):
"""Add description to the new project"""
description_text = self.generator.generate_random_text(10) # generate random text for description
Expand All @@ -32,6 +37,7 @@ def test_tc_03_002_01_create_project_with_description(self, page, create_job, op

assert text == description_text

@allure.story("Add description to the existing pipeline job")
def test_rf_tc_03_002_02_add_description(self, create_job, open_page):
"""Add description to the existing project"""
description_text = self.generator.generate_random_text(10) # generate random text for description
Expand Down