import requests import urllib.parse from src.helpers.logger import Logger from src import config log = Logger() def get_user_email_with_worker(): email = config.USER_EMAIL if email == "": log.info(f"Worker = {config.PYTEST_XDIST_WORKER}") if config.PYTEST_XDIST_WORKER == 'master': email = 'success+autotester_dna1@simulator.amazonses.com' else: num = int(config.PYTEST_XDIST_WORKER[2:]) + 1 email = f'success+autotester_dna{num}@simulator.amazonses.com' log.info(f'USER_EMAIL = {email}') return urllib.parse.quote_plus(email) def get_non_mfa_atlas_token(): # This token is valid for 24h ! log.info(f'getting non MFA atlas token for {config.ENV_BASE_URL}') data = {"audience": config.AUDIENCE, "client_id": config.CLIENT_ID, "client_secret": config.CLIENT_SECRET, "grant_type": config.GRANT_TYPE} response = requests.post(url=config.AUTH_HOST, data=data) return response.json()['access_token'] def get_non_mfa_url(): log.info('getting non MFA url to the app') url_app = config.ENV_BASE_URL account = get_user_email_with_worker() url_auth_proxy = f'{config.AUTH_PROXY}/login' token = get_non_mfa_atlas_token() url = f"{url_auth_proxy}?no_mfa_account={account}&dev_token={token}&next={url_app}" return url def get_fresh_tokens(cookies_refresh): url_token_refresh = f'{config.AUTH_PROXY}/token/refresh' response = requests.post(url=url_token_refresh, cookies=cookies_refresh) log.info(f'Response of getting refreshed token: {response}') return response.json()['access_token'], response.json()['refresh_token']