def test_parse_iso_8601_time_str(self): """ At times, Amazon hands us a timestamp with no microseconds. """ import datetime from route53.util import parse_iso_8601_time_str self.assertEqual(parse_iso_8601_time_str('2013-07-28T01:00:01Z'), datetime.datetime(2013, 7, 28, 1, 0, 1, 0, \ tzinfo=UTC())) self.assertEqual(parse_iso_8601_time_str('2013-07-28T01:00:01.001Z'), datetime.datetime(2013, 7, 28, 1, 0, 1, 1000, \ tzinfo=UTC()))
def parse_change_info(e_change_info): """ Parses a ChangeInfo tag. Seen in CreateHostedZone, DeleteHostedZone, and ChangeResourceRecordSetsRequest. :param lxml.etree._Element e_change_info: A ChangeInfo element. :rtype: dict :returns: A dict representation of the change info. """ if e_change_info is None: return e_change_info status = e_change_info.find('./{*}Status').text submitted_at = e_change_info.find('./{*}SubmittedAt').text submitted_at = parse_iso_8601_time_str(submitted_at) return { 'request_id': id, 'request_status': status, 'request_submitted_at': submitted_at }