import pytest from selenium.webdriver.support.ui import WebDriverWait from tests.config_reader import is_combined_setup_enabled, load_config from tests.helpers import login, logout, save_session_backup from tests.setup.sessions.test_session import create_session from tests.setup.tokens.test_trading_token import create_and_activate_token, get_product_codes from tests.step_actions import StepActions pytestmark = pytest.mark.skipif( not is_combined_setup_enabled(), reason="Combined setup requires setup.run_session and setup.run_token to both be true", ) @pytest.mark.session @pytest.mark.trading_token def test_session_and_token_setup(driver, test_context): config = load_config() token = config.get("trading_token_idas") assert token, "Add trading_token_idas in config.json before running token setup." wait = WebDriverWait(driver, 20) step = StepActions(driver, wait, test_context) driver.get(config["url"]) step.capture("open_application") login( driver, config["login"]["username"], config["login"]["password"] ) step.capture("login") save_session_backup(driver, test_context, "login_session_backup") create_session(driver, step, config) for product_code in get_product_codes(token): product_token = dict(token) product_token["product_code"] = product_code create_and_activate_token(driver, step, product_token) logout(driver)