def test_invalid_values(self): with self.assertRaises(ValueError): datetimeutil.parse_iso_datetime_string(123) with self.assertRaises(ValueError): datetimeutil.parse_iso_datetime_string('2014-1-13T00:28:33Z') with self.assertRaises(ValueError): datetimeutil.parse_iso_datetime_string('2014/1/13T00:28:33Z') with self.assertRaises(ValueError): datetimeutil.parse_iso_datetime_string('2014-01-13 00:28:33Z') with self.assertRaises(ValueError): datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33EST')
def to_python(self, value): if value in EMPTY_VALUES: return if isinstance(value, arrow.Arrow): return value default_timezone = datetimeutil.local if self.assume_local else datetimeutil.utc if isinstance(value, datetime.datetime): if value.tzinfo: return arrow.Arrow.fromdatetime(value) else: return arrow.Arrow.fromdatetime(value, default_timezone) try: return arrow.Arrow.fromdatetime( datetimeutil.parse_iso_datetime_string(value, default_timezone)) except ValueError: pass try: return arrow.Arrow.fromdate( datetimeutil.parse_iso_date_string(value)) except ValueError: pass msg = self.error_messages['invalid'] raise exceptions.ValidationError(msg)
def to_python(self, value): if value in EMPTY_VALUES: return if isinstance(value, arrow.Arrow): return value default_timezone = datetimeutil.local if self.assume_local else datetimeutil.utc if isinstance(value, datetime.datetime): if value.tzinfo: return arrow.Arrow.fromdatetime(value) else: return arrow.Arrow.fromdatetime(value, default_timezone) try: return arrow.Arrow.fromdatetime(datetimeutil.parse_iso_datetime_string(value, default_timezone)) except ValueError: pass try: return arrow.Arrow.fromdate(datetimeutil.parse_iso_date_string(value)) except ValueError: pass msg = self.error_messages['invalid'] raise exceptions.ValidationError(msg)
def test_valid_values(self): self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33')) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33Z')) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 432, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33.432Z')) self.assertEqual( datetime.datetime( 2014, 1, 13, 0, 28, 33, 0, datetimeutil.FixedTimezone.from_hours_minutes(10, 0)), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33+10')) self.assertEqual( datetime.datetime( 2014, 1, 13, 0, 28, 33, 432, datetimeutil.FixedTimezone.from_hours_minutes(10, 0)), datetimeutil.parse_iso_datetime_string( '2014-01-13T00:28:33.432+10')) self.assertEqual( datetime.datetime( 2014, 1, 13, 0, 28, 33, 0, datetimeutil.FixedTimezone.from_hours_minutes(10, 30)), datetimeutil.parse_iso_datetime_string( '2014-01-13T00:28:33+10:30')) self.assertEqual( datetime.datetime( 2014, 1, 13, 0, 28, 33, 432, datetimeutil.FixedTimezone.from_hours_minutes(-10, -30)), datetimeutil.parse_iso_datetime_string( '2014-01-13T00:28:33.432-10:30')) self.assertEqual( datetime.datetime( 2014, 1, 13, 0, 28, 33, 432, datetimeutil.FixedTimezone.from_hours_minutes(10, 30)), datetimeutil.parse_iso_datetime_string( '2014-01-13T00:28:33.432+1030')) # Non-Standard but close formats that are common self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13 00:28:33Z')) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13 00:28:33 GMT'))
def test_valid_values(self): self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33Z') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 432, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33.432Z') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.FixedTimezone(10, 0, '')), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33+10') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 432, datetimeutil.FixedTimezone(10, 0, '')), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33.432+10') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.FixedTimezone(10, 30, '')), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33+10:30') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 432, datetimeutil.FixedTimezone(-10, -30, '')), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33.432-10:30') )
def test_valid_values(self): self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33Z') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 432, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33.432Z') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.FixedTimezone.from_hours_minutes(10, 0)), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33+10') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 432, datetimeutil.FixedTimezone.from_hours_minutes(10, 0)), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33.432+10') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.FixedTimezone.from_hours_minutes(10, 30)), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33+10:30') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 432, datetimeutil.FixedTimezone.from_hours_minutes(-10, -30)), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33.432-10:30') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 432, datetimeutil.FixedTimezone.from_hours_minutes(10, 30)), datetimeutil.parse_iso_datetime_string('2014-01-13T00:28:33.432+1030') ) # Non-Standard but close formats that are common self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13 00:28:33Z') ) self.assertEqual( datetime.datetime(2014, 1, 13, 0, 28, 33, 0, datetimeutil.utc), datetimeutil.parse_iso_datetime_string('2014-01-13 00:28:33 GMT') )
def to_python(self, value): if value in EMPTY_VALUES: return if isinstance(value, datetime.datetime): if value.tzinfo and self.ignore_timezone: return value.replace(tzinfo=None) return value default_timezone = datetimeutil.IgnoreTimezone if self.ignore_timezone else None try: return datetimeutil.parse_iso_datetime_string(value, default_timezone) except ValueError: pass msg = self.error_messages['invalid'] raise exceptions.ValidationError(msg)
def to_python(self, value): if value in EMPTY_VALUES: return if isinstance(value, datetime.datetime): if value.tzinfo and self.ignore_timezone: return value.replace(tzinfo=None) return value default_timezone = datetimeutil.IgnoreTimezone if self.ignore_timezone else None try: return datetimeutil.parse_iso_datetime_string( value, default_timezone) except ValueError: pass msg = self.error_messages['invalid'] raise exceptions.ValidationError(msg)
def test_valid_values_timezone_handling(self, value, default_tz, expected): assert datetimeutil.parse_iso_datetime_string(value, default_tz) == expected
def test_valid_values(self, value, expected): assert datetimeutil.parse_iso_datetime_string(value) == expected