def test_constructor_precedence_highest_rank_local_yaml(fs): # Setup Global config fs.pause() global_sample = os.path.join(os.path.dirname( __file__), "files", "SSWS-sample-global.yaml") with open(global_sample) as file: global_config = yaml.load(file, Loader=yaml.SafeLoader) global_org_url = global_config["okta"]["client"]["orgUrl"] global_token = global_config["okta"]["client"]["token"] fs.resume() fs.create_file(_GLOBAL_YAML_PATH, contents=yaml.dump(global_config)) # Setup Local config fs.pause() local_sample = os.path.join(os.path.dirname( __file__), "files", "SSWS-sample-local.yaml") with open(local_sample) as file: local_config = yaml.load(file, Loader=yaml.SafeLoader) local_org_url = local_config["okta"]["client"]["orgUrl"] local_token = local_config["okta"]["client"]["token"] fs.resume() fs.create_file(_LOCAL_YAML_PATH, contents=yaml.dump(local_config)) # Create client and validate values client = OktaClient() loaded_config = client.get_config() assert local_org_url == loaded_config['client']['orgUrl'] assert local_token == loaded_config['client']['token'] assert local_org_url != global_org_url assert local_token != global_token assert global_org_url != loaded_config['client']['orgUrl'] assert global_token != loaded_config['client']['token']
def test_constructor_precedence_highest_rank_env_vars(fs): # Setup Local config fs.pause() local_sample = os.path.join(os.path.dirname( __file__), "files", "SSWS-sample-local.yaml") with open(local_sample) as file: local_config = yaml.load(file, Loader=yaml.SafeLoader) local_org_url = local_config["okta"]["client"]["orgUrl"] local_token = local_config["okta"]["client"]["token"] fs.resume() fs.create_file(_LOCAL_YAML_PATH, contents=yaml.dump(local_config)) # Setup env. vars env_org_url = "https://test.env.okta.com" env_token = "envTOKEN" os.environ["OKTA_CLIENT_ORGURL"] = env_org_url os.environ["OKTA_CLIENT_TOKEN"] = env_token client = OktaClient() loaded_config = client.get_config() os.environ.pop("OKTA_CLIENT_ORGURL") os.environ.pop("OKTA_CLIENT_TOKEN") assert local_org_url != loaded_config['client']['orgUrl'] assert local_token != loaded_config['client']['token'] assert local_org_url != env_org_url assert local_token != env_token assert env_org_url == loaded_config['client']['orgUrl'] assert env_token == loaded_config['client']['token']
def test_constructor_env_vars_PK(): authorizationMode = "PrivateKey" org_url = "https://test.okta.com" client_id = "clientID" scopes = "scope1,scope2,scope3" private_key = "private key" os.environ["OKTA_CLIENT_AUTHORIZATIONMODE"] = authorizationMode os.environ["OKTA_CLIENT_ORGURL"] = org_url os.environ["OKTA_CLIENT_CLIENTID"] = client_id os.environ["OKTA_CLIENT_SCOPES"] = scopes os.environ["OKTA_CLIENT_PRIVATEKEY"] = private_key client = OktaClient() loaded_config = client.get_config() os.environ.pop("OKTA_CLIENT_ORGURL") os.environ.pop("OKTA_CLIENT_AUTHORIZATIONMODE") os.environ.pop("OKTA_CLIENT_CLIENTID") os.environ.pop("OKTA_CLIENT_SCOPES") os.environ.pop("OKTA_CLIENT_PRIVATEKEY") assert authorizationMode == loaded_config['client']['authorizationMode'] assert org_url == loaded_config['client']['orgUrl'] assert client_id == loaded_config['client']['clientId'] assert scopes.split(',') == loaded_config['client']['scopes'] assert private_key == loaded_config['client']['privateKey']
def test_constructor_user_config_SSWS(): org_url = "https://test.okta.com" token = "TOKEN" config = {'orgUrl': org_url, 'token': token} client = OktaClient(user_config=config) loaded_config = client.get_config() assert org_url == loaded_config['client']['orgUrl'] assert token == loaded_config['client']['token']
def test_constructor_user_config_Bearer(): authorizationMode = "Bearer" org_url = "https://test.okta.com" token = "TOKEN" config = {'orgUrl': org_url, 'token': token, 'authorizationMode': authorizationMode} client = OktaClient(user_config=config) loaded_config = client.get_config() assert org_url == loaded_config['client']['orgUrl'] assert token == loaded_config['client']['token'] assert authorizationMode == loaded_config['client']['authorizationMode']
def test_constructor_env_vars_SSWS(): org_url = "https://test.okta.com" token = "TOKEN" os.environ["OKTA_CLIENT_ORGURL"] = org_url os.environ["OKTA_CLIENT_TOKEN"] = token client = OktaClient() loaded_config = client.get_config() os.environ.pop("OKTA_CLIENT_ORGURL") os.environ.pop("OKTA_CLIENT_TOKEN") assert org_url == loaded_config['client']['orgUrl'] assert token == loaded_config['client']['token']
def test_constructor_local_config_SSWS(fs): fs.pause() local_sample = os.path.join(os.path.dirname( __file__), "files", "SSWS-sample-local.yaml") with open(local_sample) as file: local_config = yaml.load(file, Loader=yaml.SafeLoader) org_url = local_config["okta"]["client"]["orgUrl"] token = local_config["okta"]["client"]["token"] fs.resume() fs.create_file(_LOCAL_YAML_PATH, contents=yaml.dump(local_config)) client = OktaClient() loaded_config = client.get_config() assert org_url == loaded_config['client']['orgUrl'] assert token == loaded_config['client']['token']
def test_constructor_local_config_PK(fs): fs.pause() local_sample = os.path.join(os.path.dirname( __file__), "files", "PK-sample-local.yaml") with open(local_sample) as file: local_config = yaml.load(file, Loader=yaml.SafeLoader) org_url = local_config["okta"]["client"]["orgUrl"] client_id = local_config["okta"]["client"]["clientId"] private_key = local_config["okta"]["client"]["privateKey"] fs.resume() fs.create_file(_LOCAL_YAML_PATH, contents=yaml.dump(local_config)) client = OktaClient() loaded_config = client.get_config() assert org_url == loaded_config['client']['orgUrl'] assert client_id == loaded_config['client']['clientId'] assert private_key == loaded_config['client']['privateKey']
def test_constructor_user_config_PK(private_key): org_url = "https://test.okta.com" authorizationMode = "PrivateKey" client_id = "clientID" scopes = ["scope1"] config = { 'orgUrl': org_url, 'authorizationMode': authorizationMode, 'clientId': client_id, 'scopes': scopes, 'privateKey': private_key } client = OktaClient(user_config=config) loaded_config = client.get_config() assert org_url == loaded_config['client']['orgUrl'] assert authorizationMode == loaded_config['client']['authorizationMode'] assert client_id == loaded_config['client']['clientId'] assert scopes == loaded_config['client']['scopes'] assert private_key == loaded_config['client']['privateKey']
def test_constructor_precedence_highest_rank_user_config(): # Setup env. vars env_org_url = "https://test.env.okta.com" env_token = "envTOKEN" os.environ["OKTA_CLIENT_ORGURL"] = env_org_url os.environ["OKTA_CLIENT_TOKEN"] = env_token # Setup user config user_org_url = "https://test.user.okta.com" user_token = "userTOKEN" config = {'orgUrl': user_org_url, 'token': user_token} client = OktaClient(config) loaded_config = client.get_config() os.environ.pop("OKTA_CLIENT_ORGURL") os.environ.pop("OKTA_CLIENT_TOKEN") assert user_org_url == loaded_config['client']['orgUrl'] assert user_token == loaded_config['client']['token'] assert user_org_url != env_org_url assert user_token != env_token assert env_org_url != loaded_config['client']['orgUrl'] assert env_token != loaded_config['client']['token']