def test_what_comes_in_goes_out(self): field = ComplexDateTimeField() date = date_utils.get_datetime_utc_now() us = field._datetime_to_microseconds_since_epoch(date) result = field._microseconds_since_epoch_to_datetime(us) self.assertEqual(date, result)
def test_what_comes_in_goes_out(self): field = ComplexDateTimeField() date = date_utils.get_datetime_utc_now() us = field._datetime_to_microseconds_since_epoch(date) result = field._microseconds_since_epoch_to_datetime(us) self.assertEqual(date, result)
def test_round_trip_conversion(self): datetime_values = [ datetime.datetime(2015, 1, 1, 15, 0, 0).replace(microsecond=500), datetime.datetime(2015, 1, 1, 15, 0, 0).replace(microsecond=0), datetime.datetime(2015, 1, 1, 15, 0, 0).replace(microsecond=999999) ] datetime_values = [ date_utils.add_utc_tz(datetime_values[0]), date_utils.add_utc_tz(datetime_values[1]), date_utils.add_utc_tz(datetime_values[2]) ] microsecond_values = [] # Calculate microsecond values for value in datetime_values: seconds = calendar.timegm(value.timetuple()) microseconds_reminder = value.time().microsecond result = int(seconds * 1000000) + microseconds_reminder microsecond_values.append(result) field = ComplexDateTimeField() # datetime to us for index, value in enumerate(datetime_values): actual_value = field._datetime_to_microseconds_since_epoch(value=value) expected_value = microsecond_values[index] expected_microseconds = value.time().microsecond self.assertEqual(actual_value, expected_value) self.assertTrue(str(actual_value).endswith(str(expected_microseconds))) # us to datetime for index, value in enumerate(microsecond_values): actual_value = field._microseconds_since_epoch_to_datetime(data=value) expected_value = datetime_values[index] self.assertEqual(actual_value, expected_value)
def test_round_trip_conversion(self): datetime_values = [ datetime.datetime(2015, 1, 1, 15, 0, 0).replace(microsecond=500), datetime.datetime(2015, 1, 1, 15, 0, 0).replace(microsecond=0), datetime.datetime(2015, 1, 1, 15, 0, 0).replace(microsecond=999999) ] microsecond_values = [] # Calculate microsecond values for value in datetime_values: seconds = time.mktime(value.timetuple()) microseconds_reminder = value.time().microsecond result = int(seconds * 1000000) + microseconds_reminder microsecond_values.append(result) field = ComplexDateTimeField() # datetime to us for index, value in enumerate(datetime_values): actual_value = field._datetime_to_microseconds_since_epoch( value=value) expected_value = microsecond_values[index] expected_microseconds = value.time().microsecond self.assertEqual(actual_value, expected_value) self.assertTrue( str(actual_value).endswith(str(expected_microseconds))) # us to datetime for index, value in enumerate(microsecond_values): actual_value = field._microseconds_since_epoch_to_datetime( data=value) expected_value = datetime_values[index] self.assertEqual(actual_value, expected_value)