def _assert_valid_timestamp(timestamp, path): try: parse_timestamp(timestamp).timetuple() except Exception as e: dotted_path = '.'.join(path) raise AssertionError('Failed to parse timestamp %s for %s: %s' % ( timestamp, dotted_path, e))
def _type_check_datetime(self, value): if isinstance(value, datetime): return True try: parse_timestamp(value) return True except (TypeError, ValueError): return False
def _convert_header_value(self, shape, value): if shape.type_name == 'timestamp': datetime_obj = parse_timestamp(value) timestamp = time.mktime(datetime_obj.timetuple()) return self._timestamp_rfc822(timestamp) else: return value
def setUp(self): super(TestCodeArtifactLogin, self).setUp() self.file_creator = FileCreator() self.test_pypi_rc_path = self.file_creator.full_path('pypirc') if not os.path.isdir(os.path.dirname(self.test_pypi_rc_path)): os.makedirs(os.path.dirname(self.test_pypi_rc_path)) self.domain = 'domain' self.domain_owner = 'domain-owner' self.repository = 'repository' self.auth_token = 'auth-token' self.namespace = 'namespace' self.duration = 3600 self.expiration = time.time() + self.duration self.expiration_as_datetime = parse_timestamp(self.expiration) self.pypi_rc_path_patch = mock.patch( 'awscli.customizations.codeartifact.login.TwineLogin' '.get_pypi_rc_path' ) self.pypi_rc_path_mock = self.pypi_rc_path_patch.start() self.pypi_rc_path_mock.return_value = self.test_pypi_rc_path self.subprocess_patch = mock.patch('subprocess.check_call') self.subprocess_mock = self.subprocess_patch.start()
def _serialize_type_timestamp(self, xmlnode, params, shape, name): datetime_obj = parse_timestamp(params) converter = getattr( self, '_timestamp_%s' % self.TIMESTAMP_FORMAT.lower()) final_value = converter(datetime_obj) node = ElementTree.SubElement(xmlnode, name) node.text = final_value
def test_parse_invalid_timestamp(self): with self.assertRaises(ValueError): parse_timestamp('invalid date')
def test_parse_rfc822(self): self.assertEqual( parse_timestamp('Wed, 02 Oct 2002 13:00:00 GMT'), datetime.datetime(2002, 10, 2, 13, 0, tzinfo=tzutc()))
def test_parse_epoch_as_string(self): self.assertEqual( parse_timestamp('1222172800'), datetime.datetime(2008, 9, 23, 12, 26, 40, tzinfo=tzutc()))
def test_parse_epoch_zero_time(self): self.assertEqual( parse_timestamp(0), datetime.datetime(1970, 1, 1, 0, 0, 0, tzinfo=tzutc()))
def test_parse_iso8601(self): self.assertEqual( parse_timestamp('1970-01-01T00:10:00.000Z'), datetime.datetime(1970, 1, 1, 0, 10, tzinfo=tzutc()))
def _compliance_timestamp_parser(value): datetime = parse_timestamp(value) # Convert from our time zone to UTC datetime = datetime.astimezone(tzutc()) # Convert to epoch. return int(timegm(datetime.timetuple()))
def _document_datetime(self, section, value, path): datetime_tuple = parse_timestamp(value).timetuple() datetime_str = str(datetime_tuple[0]) for i in range(1, len(datetime_tuple)): datetime_str += ", " + str(datetime_tuple[i]) section.write("datetime(%s)," % datetime_str)
def iso_format(value): return parse_timestamp(value).isoformat()
def _serialize_type_timestamp(self, serialized, value, shape, prefix=''): datetime_obj = parse_timestamp(value) converter = getattr( self, '_timestamp_%s' % self.TIMESTAMP_FORMAT.lower()) final_value = converter(datetime_obj) serialized[prefix] = final_value