blob: 54d2dc907cbd8fb5433a10cecc75a5c9e7fdb07a [file] [log] [blame]
#!/usr/bin/env python
import datetime
import xml.sax
import unittest
import boto.handler
import boto.resultset
import boto.cloudformation
SAMPLE_XML = r"""
<DescribeStacksResponse xmlns="http://cloudformation.amazonaws.com/doc/2010-05-15/">
<DescribeStacksResult>
<Stacks>
<member>
<Tags>
<member>
<Value>value0</Value>
<Key>key0</Key>
</member>
<member>
<Key>key1</Key>
<Value>value1</Value>
</member>
</Tags>
<StackId>arn:aws:cloudformation:ap-southeast-1:100:stack/Name/id</StackId>
<StackStatus>CREATE_COMPLETE</StackStatus>
<StackName>Name</StackName>
<StackStatusReason/>
<Description/>
<NotificationARNs>
<member>arn:aws:sns:ap-southeast-1:100:name</member>
</NotificationARNs>
<CreationTime>2013-01-10T05:04:56Z</CreationTime>
<DisableRollback>false</DisableRollback>
<Outputs>
<member>
<OutputValue>value0</OutputValue>
<Description>output0</Description>
<OutputKey>key0</OutputKey>
</member>
<member>
<OutputValue>value1</OutputValue>
<Description>output1</Description>
<OutputKey>key1</OutputKey>
</member>
</Outputs>
</member>
</Stacks>
</DescribeStacksResult>
<ResponseMetadata>
<RequestId>1</RequestId>
</ResponseMetadata>
</DescribeStacksResponse>
"""
class TestStackParse(unittest.TestCase):
def test_parse_tags(self):
rs = boto.resultset.ResultSet([('member', boto.cloudformation.stack.Stack)])
h = boto.handler.XmlHandler(rs, None)
xml.sax.parseString(SAMPLE_XML, h)
tags = rs[0].tags
self.assertEqual(tags, {u'key0': u'value0', u'key1': u'value1'})
def test_creation_time_with_millis(self):
millis_xml = SAMPLE_XML.replace(
"<CreationTime>2013-01-10T05:04:56Z</CreationTime>",
"<CreationTime>2013-01-10T05:04:56.102342Z</CreationTime>"
)
rs = boto.resultset.ResultSet([('member', boto.cloudformation.stack.Stack)])
h = boto.handler.XmlHandler(rs, None)
xml.sax.parseString(millis_xml, h)
creation_time = rs[0].creation_time
self.assertEqual(creation_time, datetime.datetime(2013, 1, 10, 5, 4, 56, 102342))
if __name__ == '__main__':
unittest.main()