Skip to content
This repository was archived by the owner on Mar 23, 2026. It is now read-only.

Commit 6ff9e82

Browse files
committed
move and improve test
1 parent 030d7ad commit 6ff9e82

4 files changed

Lines changed: 73 additions & 29 deletions

File tree

tests/aws/services/cloudformation/api/test_changesets.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1487,3 +1487,40 @@ def test_update_change_set_with_aws_novalue_repro(aws_client, cleanups):
14871487
{"ParameterKey": "FallbackBucketName", "ParameterValue": fallback_bucket},
14881488
],
14891489
)
1490+
1491+
1492+
@markers.aws.validated
1493+
def test_create_changeset_for_deleted_stack(aws_client, deploy_cfn_template, snapshot):
1494+
template = json.dumps(
1495+
{
1496+
"Resources": {
1497+
"Parameter": {
1498+
"Type": "AWS::SSM::Parameter",
1499+
"Properties": {"Type": "String", "Value": "Test"},
1500+
}
1501+
}
1502+
}
1503+
)
1504+
1505+
stack = deploy_cfn_template(template=template)
1506+
stack.destroy()
1507+
1508+
with pytest.raises(ClientError) as create_ex:
1509+
aws_client.cloudformation.create_change_set(
1510+
StackName=stack.stack_id,
1511+
ChangeSetName="test",
1512+
TemplateBody=template,
1513+
ChangeSetType="CREATE",
1514+
)
1515+
1516+
with pytest.raises(ClientError) as update_ex:
1517+
aws_client.cloudformation.create_change_set(
1518+
StackName=stack.stack_id,
1519+
ChangeSetName="test",
1520+
TemplateBody=template,
1521+
ChangeSetType="UPDATE",
1522+
)
1523+
1524+
snapshot.add_transformer(snapshot.transform.regex(stack.stack_id, "<stack-id>"))
1525+
snapshot.match("ErrorForCreate", create_ex.value.response)
1526+
snapshot.match("ErrorForUpdate", update_ex.value.response)

tests/aws/services/cloudformation/api/test_changesets.snapshot.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,5 +655,32 @@
655655
}
656656
}
657657
}
658+
},
659+
"tests/aws/services/cloudformation/api/test_changesets.py::test_create_changeset_for_deleted_stack": {
660+
"recorded-date": "10-10-2025, 18:02:05",
661+
"recorded-content": {
662+
"ErrorForCreate": {
663+
"Error": {
664+
"Code": "ValidationError",
665+
"Message": "Stack [<stack-id>] already exists and cannot be created again with the changeSet [test].",
666+
"Type": "Sender"
667+
},
668+
"ResponseMetadata": {
669+
"HTTPHeaders": {},
670+
"HTTPStatusCode": 400
671+
}
672+
},
673+
"ErrorForUpdate": {
674+
"Error": {
675+
"Code": "ValidationError",
676+
"Message": "Stack:<stack-id> is in DELETE_COMPLETE state and can not be updated.",
677+
"Type": "Sender"
678+
},
679+
"ResponseMetadata": {
680+
"HTTPHeaders": {},
681+
"HTTPStatusCode": 400
682+
}
683+
}
684+
}
658685
}
659686
}

tests/aws/services/cloudformation/api/test_changesets.validation.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,15 @@
7777
"tests/aws/services/cloudformation/api/test_changesets.py::test_create_change_set_update_without_parameters": {
7878
"last_validated_date": "2022-05-31T07:32:02+00:00"
7979
},
80+
"tests/aws/services/cloudformation/api/test_changesets.py::test_create_changeset_for_deleted_stack": {
81+
"last_validated_date": "2025-10-10T18:02:05+00:00",
82+
"durations_in_seconds": {
83+
"setup": 0.27,
84+
"call": 16.63,
85+
"teardown": 0.13,
86+
"total": 17.03
87+
}
88+
},
8089
"tests/aws/services/cloudformation/api/test_changesets.py::test_create_changeset_with_stack_id": {
8190
"last_validated_date": "2023-11-28T06:48:23+00:00"
8291
},

tests/aws/services/cloudformation/api/test_stacks.py

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1267,32 +1267,3 @@ def test_blank_parameter_value(aws_client: ServiceLevelClientFactory, cleanups):
12671267
cleanups.append(lambda: aws_client.cloudformation.delete_stack(StackName=stack_id))
12681268

12691269
aws_client.cloudformation.get_waiter("stack_create_complete").wait(StackName=stack_id)
1270-
1271-
1272-
@markers.aws.needs_fixing
1273-
def test_duplication_exception(aws_client, deploy_cfn_template):
1274-
parameter_resource_body = {
1275-
"Type": "AWS::SSM::Parameter",
1276-
"Properties": {"Type": "String", "Value": "Test"},
1277-
}
1278-
long_template = {"Resources": {f"Parameter{i}": parameter_resource_body for i in range(100)}}
1279-
short_template = {"Resources": {f"Parameter{i}": parameter_resource_body for i in range(1)}}
1280-
1281-
stack = deploy_cfn_template(template=json.dumps(long_template))
1282-
1283-
stack.destroy()
1284-
1285-
aws_client.cloudformation.create_change_set(
1286-
StackName=stack.stack_name,
1287-
ChangeSetName="test",
1288-
TemplateBody=json.dumps(short_template),
1289-
ChangeSetType="CREATE",
1290-
)
1291-
aws_client.cloudformation.create_change_set(
1292-
StackName=stack.stack_id,
1293-
ChangeSetName="test",
1294-
TemplateBody=json.dumps(short_template),
1295-
ChangeSetType="UPDATE",
1296-
)
1297-
1298-
aws_client.cloudformation.describe_stacks(StackName=stack.stack_name)

0 commit comments

Comments
 (0)