Skip to content

Commit 5397371

Browse files
authored
no longer poping the SpotinstAccessToken attribute (#567)
1 parent e9f8472 commit 5397371

File tree

2 files changed

+47
-1
lines changed

2 files changed

+47
-1
lines changed

senza/components/elastigroup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ def _extract_spotinst_access_token(definition: dict):
592592
"""
593593
extract the provided access token
594594
"""
595-
return definition["Mappings"]["Senza"]["Info"].pop("SpotinstAccessToken")
595+
return definition["Mappings"]["Senza"]["Info"]["SpotinstAccessToken"]
596596

597597

598598
def extract_spotinst_account_id(access_token: str, definition: dict, account_info):

tests/test_elastigroup.py

+46
Original file line numberDiff line numberDiff line change
@@ -882,6 +882,7 @@ def test_patch_cross_stack_policy(monkeypatch):
882882

883883
assert definition == test_case["expected_output"]
884884

885+
885886
def test_patch_cross_stack_policy_errors():
886887
# Error case 1 :: Instance profile not in Resources
887888
with pytest.raises(click.UsageError):
@@ -932,3 +933,48 @@ def test_patch_cross_stack_policy_errors():
932933
}}
933934

934935
patch_cross_stack_policy(definition, elastigroup_config)
936+
937+
938+
def test_multiple_elastigroups(monkeypatch):
939+
config1 = {
940+
"Name": "eg1",
941+
"SecurityGroups": "sg1",
942+
"InstanceType": "big",
943+
"SpotAlternatives": [
944+
"smaller",
945+
"small",
946+
"small-ish"
947+
]
948+
}
949+
config2 = {
950+
"Name": "eg2",
951+
"SecurityGroups": "sg1",
952+
"InstanceType": "big",
953+
"SpotAlternatives": [
954+
"smaller",
955+
"small",
956+
"small-ish"
957+
]
958+
}
959+
args = MagicMock()
960+
args.region = "reg1"
961+
info = {'StackName': 'foobar', 'StackVersion': '0.1', 'SpotinstAccessToken': 'token1'}
962+
subnets = ["sn1", "sn2", "sn3"]
963+
server_subnets = {"reg1": {"Subnets": subnets}}
964+
senza = {"Info": info}
965+
mappings = {"Senza": senza, "ServerSubnets": server_subnets}
966+
definition = {"Resources": {}, "Mappings": mappings}
967+
mock_sg = MagicMock()
968+
mock_sg.return_value = "sg1"
969+
monkeypatch.setattr('senza.aws.resolve_security_group', mock_sg)
970+
971+
mock_resolve_account_id = MagicMock()
972+
mock_resolve_account_id.return_value = 'act-12345abcdef'
973+
monkeypatch.setattr('senza.components.elastigroup.resolve_account_id', mock_resolve_account_id)
974+
975+
mock_account_info = MagicMock()
976+
mock_account_info.Region = "reg1"
977+
mock_account_info.AccountID = "12345"
978+
979+
component_elastigroup(definition, config1, args, info, False, mock_account_info)
980+
component_elastigroup(definition, config2, args, info, False, mock_account_info)

0 commit comments

Comments
 (0)