40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
import pytest
|
|
from selenium.webdriver.support.ui import WebDriverWait
|
|
|
|
from tests.config_reader import get_setup_configs
|
|
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 run_token_setup, get_product_codes
|
|
from tests.step_actions import StepActions
|
|
|
|
|
|
@pytest.mark.session
|
|
@pytest.mark.trading_token
|
|
@pytest.mark.parametrize("config", get_setup_configs("combined"), ids=lambda c: c["product_name"])
|
|
def test_session_and_token_setup(driver, test_context, config):
|
|
|
|
token = config["token"]
|
|
|
|
wait = WebDriverWait(driver, 20)
|
|
step = StepActions(driver, wait, test_context)
|
|
|
|
if not getattr(driver, "_pxil_logged_in", False):
|
|
driver.get(config["url"])
|
|
step.capture("open_application")
|
|
|
|
if not getattr(driver, "_pxil_logged_in", False):
|
|
login(driver, config["login"]["username"], config["login"]["password"])
|
|
driver._pxil_logged_in = True
|
|
step.capture("login")
|
|
save_session_backup(driver, test_context, "login_session_backup")
|
|
|
|
if config.get("setup", {}).get("run_session", True):
|
|
create_session(driver, step, config)
|
|
|
|
if config.get("setup", {}).get("run_token", True):
|
|
for product_code in get_product_codes(token):
|
|
product_token = dict(token)
|
|
product_token["product_code"] = product_code
|
|
run_token_setup(driver, step, product_token)
|
|
|