def test_resource_with_extended_attributes(self): update_policy = core.UpdatePolicy({ "Object1": "Location1", "Object2": "Location2" }) metadata = core.Metadata({ "Object1": "Location1", "Object2": "Location2" }) deletion_policy = core.DeletionPolicy("Retain") depends_on = core.DependsOn("Location2") res = core.Resource( 'TestResource', 'AWS::Resource::Test', None, [metadata, update_policy, deletion_policy, depends_on]) cft = core.CloudFormationTemplate() cft.resources.test = res # The output should have the metadata attached expected_out = dedent(u'''\ { "Type": "AWS::Resource::Test", "Metadata": { "Object1": "Location1", "Object2": "Location2" }, "UpdatePolicy": { "Object1": "Location1", "Object2": "Location2" }, "DeletionPolicy": "Retain", "DependsOn": "Location2" }''') self.assertEqual(unicode(cft.resources.test), expected_out)
def test_resource_with_update_policy(self): update_policy = core.UpdatePolicy({ "MaxBatchSize": "Location1", "MinInstancesInService": "Location2", "PauseTime": "30" }) res = core.Resource('TestResource', 'AWS::Resource::Test', None, update_policy) cft = core.CloudFormationTemplate() cft.resources.test = res # The output should have the metadata attached expected_out = dedent(u'''\ { "Type": "AWS::Resource::Test", "UpdatePolicy": { "PauseTime": "30", "MaxBatchSize": "Location1", "MinInstancesInService": "Location2" } }''') self.assertEqual(unicode(cft.resources.test), expected_out)