Files
doczyai-pipelines/Doczy.AI_Automation/tests/conftest.py
T
2024-09-27 15:47:32 +01:00

100 lines
2.7 KiB
Python

import datetime
import allure
import pytest
from selenium import webdriver
from utils.reader import read_yaml, read_excel
# def pytest_runtest_makereport(item, call):
# # Your custom logic here
# # This function will be called automatically by pytest
# # with information about the test item and its outcome (call)
# # outcome = yield
# # rep = outcome.get_result()
# pass
# @pytest.hookimpl(tryfirst=True)
def pytest_html_report_title(report):
"""Set the title of the HTML report dynamically."""
current_datetime = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
report.title = f"Test Report {current_datetime}"
def client_list():
file_path = 'C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\data\\data.xlsx'
sheet_name = 'client_data'
return read_excel(file_path, sheet_name, ['client'])
@pytest.fixture
def client_list_fixture():
return client_list()
@pytest.fixture
def groups():
file_path = 'C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\data\\data.xlsx'
sheet_name = 'groups'
return read_excel(file_path, sheet_name, ['groups'])
def batch_list():
file_path = 'C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\data\\data.xlsx'
sheet_name = 'batch_data'
return read_excel(file_path, sheet_name, ['client', 'Batch'])
@pytest.fixture
@allure.title("Creating Web Driver")
def driver(config, request):
browser = request.config.getoption('--browser')
if browser == 'remote':
driver = webdriver.Remote()
yield driver
elif browser == 'firefox':
driver = webdriver.Firefox()
yield driver
elif browser == 'edge':
driver = webdriver.Edge()
yield driver
else:
driver = webdriver.Chrome()
driver.maximize_window()
yield driver
# if config['platform'] == 'remote':
# driver = webdriver.Remote()
# yield driver
# elif config['platform'] == 'firefox':
# driver = webdriver.Firefox()
# yield driver
# elif config['platform'] == 'edge':
# driver = webdriver.Edge()
# yield driver
# else:
# driver = webdriver.Chrome()
# yield driver
if driver is not None:
driver.quit()
@pytest.fixture
def config(request):
env = request.config.getoption('--env')
return read_yaml_config(env)
def read_yaml_config(env):
yaml_file_path = "C:\\Ankit\\Code\\doczy.ai\\Doczy.AI_Automation\\config\\"
yaml_file_name = "env.yaml"
return read_yaml(yaml_file_path, yaml_file_name)["environment"][env]
def pytest_addoption(parser):
parser.addoption('--env', action='store', default='DEV', help='Environment to run tests against')
parser.addoption('--browser', action='store', default='firefox', help='browser to run test on')