Fixes issue #575: cloudformation update_stack response ResponseParserError.

This commit is contained in:
Lawrence Aiello 2016-04-18 14:37:12 -04:00
commit 3017181862
4 changed files with 81 additions and 28 deletions

View file

@ -263,24 +263,24 @@ def test_stack_tags():
dict(stack.tags).should.equal({"foo": "bar", "baz": "bleh"})
# @mock_cloudformation
# def test_update_stack():
# conn = boto.connect_cloudformation()
# conn.create_stack(
# "test_stack",
# template_body=dummy_template_json,
# )
@mock_cloudformation
def test_update_stack():
conn = boto.connect_cloudformation()
conn.create_stack(
"test_stack",
template_body=dummy_template_json,
)
# conn.update_stack("test_stack", dummy_template_json2)
conn.update_stack("test_stack", dummy_template_json2)
# stack = conn.describe_stacks()[0]
# stack.get_template().should.equal({
# 'GetTemplateResponse': {
# 'GetTemplateResult': {
# 'TemplateBody': dummy_template_json2,
# 'ResponseMetadata': {
# 'RequestId': '2d06e36c-ac1d-11e0-a958-f9382b6eb86bEXAMPLE'
# }
# }
# }
# })
stack = conn.describe_stacks()[0]
stack.get_template().should.equal({
'GetTemplateResponse': {
'GetTemplateResult': {
'TemplateBody': dummy_template_json2,
'ResponseMetadata': {
'RequestId': '2d06e36c-ac1d-11e0-a958-f9382b6eb86bEXAMPLE'
}
}
}
})

View file

@ -19,7 +19,27 @@ dummy_template = {
"Resources": {},
}
dummy_update_template = {
"AWSTemplateFormatVersion": "2010-09-09",
"Parameters": {
"KeyName": {
"Description": "Name of an existing EC2 KeyPair",
"Type": "AWS::EC2::KeyPair::KeyName",
"ConstraintDescription": "must be the name of an existing EC2 KeyPair."
}
},
"Resources": {
"Instance": {
"Type": "AWS::EC2::Instance",
"Properties": {
"ImageId": "ami-08111162"
}
}
}
}
dummy_template_json = json.dumps(dummy_template)
dummy_update_template_json = json.dumps(dummy_template)
@mock_cloudformation
def test_boto3_create_stack():
@ -169,6 +189,25 @@ def test_describe_deleted_stack():
stack_by_id['StackName'].should.equal("test_stack")
stack_by_id['StackStatus'].should.equal("DELETE_COMPLETE")
@mock_cloudformation
def test_describe_updated_stack():
cf_conn = boto3.client('cloudformation', region_name='us-east-1')
cf_conn.create_stack(
StackName="test_stack",
TemplateBody=dummy_template_json,
)
cf_conn.update_stack(
StackName="test_stack",
TemplateBody=dummy_update_template_json)
stack = cf_conn.describe_stacks(StackName="test_stack")['Stacks'][0]
stack_id = stack['StackId']
stack_by_id = cf_conn.describe_stacks(StackName=stack_id)['Stacks'][0]
stack_by_id['StackId'].should.equal(stack['StackId'])
stack_by_id['StackName'].should.equal("test_stack")
stack_by_id['StackStatus'].should.equal("UPDATE_COMPLETE")
@mock_cloudformation
def test_bad_describe_stack():