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" )