def test_number_to_datetime(self): pair = ( 1403272847, utc.localize(datetime(2014, 6, 20, 14, 0, 47, 0)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) pair = ( 1403272847.361077, utc.localize(datetime(2014, 6, 20, 14, 0, 47, 361077)), ) self.assertEqual(make_datetime(pair[0]), pair[1])
def test_number_to_datetime(self): pair = ( 1403272847, utc.localize(datetime(2014, 6, 20, 14, 0, 47, 0)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) pair = ( 1403272847.361077, utc.localize(datetime(2014, 6, 20, 14, 0, 47, 361077)), ) self.assertEqual(make_datetime(pair[0]), pair[1])
def test_iterable_to_datetime(self): pair = ( (2014, 12, 17, utc), utc.localize(datetime(2014, 12, 17)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) self.assertEqual(make_datetime(list(pair[0])), pair[1]) pair = ( ( 2014, 12, 17, ), datetime( 2014, 12, 17, ), ) self.assertEqual(_make_datetime(pair[0]), pair[1]) self.assertEqual(_make_datetime(list(pair[0])), pair[1]) pair = ( (2014, 12, 17, 5, 13, 23, 123456, utc), utc.localize(datetime(2014, 12, 17, 5, 13, 23, 123456)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) self.assertEqual(make_datetime(list(pair[0])), pair[1]) pair = ( (2014, 12, 17, 5, 13, 23, 123456), datetime(2014, 12, 17, 5, 13, 23, 123456), ) self.assertEqual(_make_datetime(pair[0]), pair[1]) self.assertEqual(_make_datetime(list(pair[0])), pair[1]) # Non-UTC timezone central = timezone('US/Central') pair = ( ( 2014, 12, 17, central, ), central.localize(datetime(2014, 12, 17)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) self.assertEqual(make_datetime(list(pair[0])), pair[1]) pair = ( (2014, 12, 17, 5, 13, 23, 123456, central), central.localize(datetime(2014, 12, 17, 5, 13, 23, 123456)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) self.assertEqual(make_datetime(list(pair[0])), pair[1])
def test_iso_to_datetime(self): # with microseconds # naive pair = ( '2014-06-19T16:40:22.293913', datetime(2014, 6, 19, 16, 40, 22, 293913) ) self.assertEqual(_make_datetime(pair[0]), pair[1]) # timezone pair = ( '2014-06-19T21:55:27.934309+00:00', utc.localize(datetime(2014, 6, 19, 21, 55, 27, 934309)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) # with integer seconds # naive pair = ( '2014-06-19T16:40:22', datetime(2014, 6, 19, 16, 40, 22, 0) ) self.assertEqual(_make_datetime(pair[0]), pair[1]) # timezone pair = ( '2014-06-19T21:55:27+00:00', utc.localize(datetime(2014, 6, 19, 21, 55, 27, 0)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) # timezone other than UTC central = timezone('US/Central') pair = ( '2014-06-19T17:03:17.361077-05:00', central.localize(datetime(2014, 6, 19, 17, 3, 17, 361077)), # Due to pytz weirdness, the following has # incorrect tz offset info: # datetime(2014, 6, 19, 17, 3, 17, 361077, tzinfo=central)) ) self.assertEqual(make_datetime(pair[0]), pair[1])
def test_bad_iso_to_datetime(self): with self.assertRaises(ValueError): _make_datetime('') with self.assertRaises(ValueError): _make_datetime('bad') with self.assertRaises(TypeError): _make_datetime(None) with self.assertRaises(ValueError): # used '#' instead of 'T' _make_datetime('2014-06-19#17:03:17.361077-05:00') with self.assertRaises(ValueError): # used '#' instead of '-' _make_datetime('2014-06-19T17:03#17.361077-05:00') with self.assertRaises(ValueError): # naive timestamps raise ValueError make_datetime('2014-06-19T16:40:22.293913')
def test_bad_iso_to_datetime(self): with self.assertRaises(ValueError): _make_datetime('') with self.assertRaises(ValueError): _make_datetime('bad') with self.assertRaises(TypeError): _make_datetime(None) with self.assertRaises(ValueError): # used '#' instead of 'T' _make_datetime('2014-06-19#17:03:17.361077-05:00') with self.assertRaises(ValueError): # used '#' instead of '-' _make_datetime('2014-06-19T17:03#17.361077-05:00') with self.assertRaises(ValueError): # naive timestamps raise ValueError make_datetime('2014-06-19T16:40:22.293913')
def stored(self, value): if value is None or isinstance(value, datetime): self._stored = value return try: self._stored = make_datetime(value) except TypeError: raise TypeError( f"Property 'stored' in a 'tincan.{self.__class__.__name__}' " f"object must be set with a " f"datetime.datetime, str, unicode, int, float, dict " f"or None.\n\n")
def timestamp(self, value): if value is None: self._timestamp = value return try: self._timestamp = make_datetime(value) except TypeError: raise TypeError( f"Property 'timestamp' in a 'tincan.{self.__class__.__name__}' " f"object must be set with a " f"datetime.datetime, str, unicode, int, float, dict " f"or None.\n\n")
def timestamp(self, value): if value is None or isinstance(value, datetime): self._timestamp = value return try: self._timestamp = make_datetime(value) except TypeError as e: message = ( f"Property 'timestamp' in a 'tincan.{self.__class__.__name__}' " f"object must be set with a " f"datetime.datetime, str, unicode, int, float, dict " f"or None.\n\n{repr(e)}") raise TypeError(message) from e
def test_iso_to_datetime(self): # with microseconds # naive pair = ('2014-06-19T16:40:22.293913', datetime(2014, 6, 19, 16, 40, 22, 293913)) self.assertEqual(_make_datetime(pair[0]), pair[1]) # timezone pair = ( '2014-06-19T21:55:27.934309+00:00', utc.localize(datetime(2014, 6, 19, 21, 55, 27, 934309)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) # with integer seconds # naive pair = ('2014-06-19T16:40:22', datetime(2014, 6, 19, 16, 40, 22, 0)) self.assertEqual(_make_datetime(pair[0]), pair[1]) # timezone pair = ( '2014-06-19T21:55:27+00:00', utc.localize(datetime(2014, 6, 19, 21, 55, 27, 0)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) # timezone other than UTC central = timezone('US/Central') pair = ( '2014-06-19T17:03:17.361077-05:00', central.localize(datetime(2014, 6, 19, 17, 3, 17, 361077)), # Due to pytz weirdness, the following has # incorrect tz offset info: # datetime(2014, 6, 19, 17, 3, 17, 361077, tzinfo=central)) ) self.assertEqual(make_datetime(pair[0]), pair[1])
def timestamp(self, value): if value is None: self._timestamp = value return try: self._timestamp = make_datetime(value) except TypeError as e: e.message = ("Property 'timestamp' in a 'tincan.%s' " "object must be set with a " "datetime.datetime, str, unicode, int, float, dict " "or None.\n\n%s" % ( self.__class__.__name__, e.message, )) raise e
def test_iterable_to_datetime(self): pair = ( (2014, 12, 17, utc), utc.localize(datetime(2014, 12, 17)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) self.assertEqual(make_datetime(list(pair[0])), pair[1]) pair = ( (2014, 12, 17, ), datetime(2014, 12, 17, ), ) self.assertEqual(_make_datetime(pair[0]), pair[1]) self.assertEqual(_make_datetime(list(pair[0])), pair[1]) pair = ( (2014, 12, 17, 5, 13, 23, 123456, utc), utc.localize(datetime(2014, 12, 17, 5, 13, 23, 123456)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) self.assertEqual(make_datetime(list(pair[0])), pair[1]) pair = ( (2014, 12, 17, 5, 13, 23, 123456), datetime(2014, 12, 17, 5, 13, 23, 123456), ) self.assertEqual(_make_datetime(pair[0]), pair[1]) self.assertEqual(_make_datetime(list(pair[0])), pair[1]) # Non-UTC timezone central = timezone('US/Central') pair = ( (2014, 12, 17, central, ), central.localize(datetime(2014, 12, 17)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) self.assertEqual(make_datetime(list(pair[0])), pair[1]) pair = ( (2014, 12, 17, 5, 13, 23, 123456, central), central.localize(datetime(2014, 12, 17, 5, 13, 23, 123456)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) self.assertEqual(make_datetime(list(pair[0])), pair[1])
def stored(self, value): if value is None or isinstance(value, datetime): self._stored = value return try: self._stored = make_datetime(value) except TypeError as e: e.message = ( "Property 'stored' in a 'tincan.%s' " "object must be set with a " "datetime.datetime, str, unicode, int, float, dict " "or None.\n\n%s" % ( self.__class__.__name__, e.message, ) ) raise e
def test_dict_to_datetime(self): pair = ( {'year': 2014, 'month': 12, 'day': 17, 'tzinfo': utc, }, utc.localize(datetime(2014, 12, 17)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) pair = ( {'year': 2014, 'month': 12, 'day': 17, 'tzinfo': utc, 'hour': 12, 'minute': 4, 'second': 3, }, utc.localize(datetime(2014, 12, 17, 12, 4, 3, 0)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) pair = ( {'year': 2014, 'month': 12, 'day': 17, 'hour': 12, 'minute': 4, 'second': 3, 'microsecond': 560000, 'tzinfo': utc, }, utc.localize(datetime(2014, 12, 17, 12, 4, 3, 560000)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) # Non-UTC timezone central = timezone('US/Central') pair = ( {'year': 2014, 'month': 12, 'day': 17, 'tzinfo': central, }, central.localize(datetime(2014, 12, 17)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) pair = ( {'year': 2014, 'month': 12, 'day': 17, 'tzinfo': central, 'hour': 12, 'minute': 4, 'second': 3, }, central.localize(datetime(2014, 12, 17, 12, 4, 3, 0)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) pair = ( {'year': 2014, 'month': 12, 'day': 17, 'hour': 12, 'minute': 4, 'second': 3, 'microsecond': 560000, 'tzinfo': central, }, central.localize(datetime(2014, 12, 17, 12, 4, 3, 560000)), ) self.assertEqual(make_datetime(pair[0]), pair[1])
def test_dict_to_datetime(self): pair = ( { 'year': 2014, 'month': 12, 'day': 17, 'tzinfo': utc, }, utc.localize(datetime(2014, 12, 17)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) pair = ( { 'year': 2014, 'month': 12, 'day': 17, 'tzinfo': utc, 'hour': 12, 'minute': 4, 'second': 3, }, utc.localize(datetime(2014, 12, 17, 12, 4, 3, 0)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) pair = ( { 'year': 2014, 'month': 12, 'day': 17, 'hour': 12, 'minute': 4, 'second': 3, 'microsecond': 560000, 'tzinfo': utc, }, utc.localize(datetime(2014, 12, 17, 12, 4, 3, 560000)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) # Non-UTC timezone central = timezone('US/Central') pair = ( { 'year': 2014, 'month': 12, 'day': 17, 'tzinfo': central, }, central.localize(datetime(2014, 12, 17)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) pair = ( { 'year': 2014, 'month': 12, 'day': 17, 'tzinfo': central, 'hour': 12, 'minute': 4, 'second': 3, }, central.localize(datetime(2014, 12, 17, 12, 4, 3, 0)), ) self.assertEqual(make_datetime(pair[0]), pair[1]) pair = ( { 'year': 2014, 'month': 12, 'day': 17, 'hour': 12, 'minute': 4, 'second': 3, 'microsecond': 560000, 'tzinfo': central, }, central.localize(datetime(2014, 12, 17, 12, 4, 3, 560000)), ) self.assertEqual(make_datetime(pair[0]), pair[1])