Source code for infrahouse_toolkit.aws.tests.config.test_get_sso_region
from textwrap import dedent
import pytest
from infrahouse_toolkit.aws import AWSConfig
CONTENT = dedent(
"""
[default]
region = us-west-123
[sso-session foo_session]
sso_start_url = https://foo.com/start#
sso_region = us-west-1
sso_registration_scopes = sso:account:access
[profile foo_profile]
sso_session = foo_session
sso_account_id = 12345678
sso_role_name = admin
region = us-west-2
[sso-session bar_session]
sso_start_url = https://bar.com/start#
sso_registration_scopes = sso:account:access
[profile bar_profile]
sso_session = bar_session
sso_account_id = 12345678
sso_role_name = admin
region = us-west-2
"""
)
CONTENT_2 = dedent(
"""
[profile foo]
region = us-west-345
[profile bar]
"""
)
[docs]@pytest.mark.parametrize(
"profile, content, region",
[
("foo_profile", CONTENT, "us-west-1"),
("bar_profile", CONTENT, "us-west-123"),
(None, CONTENT, "us-west-123"),
("default", CONTENT, "us-west-123"),
("default", CONTENT_2, None),
("foo", CONTENT_2, None),
("bar", CONTENT_2, None),
(None, CONTENT_2, None),
],
)
def test_sso_region(profile, region, content, tmpdir):
aws_home = tmpdir.mkdir("home")
cfg = aws_home.join("config")
cfg.write(content)
assert AWSConfig(aws_home=str(aws_home)).get_sso_region(profile) == region