mirror of
https://github.com/kennethreitz/pydantic.git
synced 2026-06-05 23:00:18 +00:00
fix parse error of parse_date() and parse_datetime() when input is 0 (#144)
This commit is contained in:
@@ -91,7 +91,7 @@ def parse_date(value: Union[date, StrIntFloat]) -> date:
|
||||
return value
|
||||
|
||||
number = get_numeric(value)
|
||||
if number:
|
||||
if number is not None:
|
||||
return from_unix_seconds(number).date()
|
||||
|
||||
match = date_re.match(value)
|
||||
@@ -139,7 +139,7 @@ def parse_datetime(value: Union[datetime, StrIntFloat]) -> datetime:
|
||||
return value
|
||||
|
||||
number = get_numeric(value)
|
||||
if number:
|
||||
if number is not None:
|
||||
return from_unix_seconds(number)
|
||||
|
||||
match = datetime_re.match(value)
|
||||
|
||||
@@ -23,6 +23,7 @@ def create_tz(minutes):
|
||||
(1494012444.883309, date(2017, 5, 5)),
|
||||
('1494012444', date(2017, 5, 5)),
|
||||
(1494012444, date(2017, 5, 5)),
|
||||
(0, date(1970, 1, 1)),
|
||||
('2012-04-23', date(2012, 4, 23)),
|
||||
('2012-4-9', date(2012, 4, 9)),
|
||||
(date(2012, 4, 9), date(2012, 4, 9)),
|
||||
@@ -76,6 +77,7 @@ def test_time_parsing(value, result):
|
||||
('2012-04-23T10:20:30.400+02', datetime(2012, 4, 23, 10, 20, 30, 400000, create_tz(120))),
|
||||
('2012-04-23T10:20:30.400-02', datetime(2012, 4, 23, 10, 20, 30, 400000, create_tz(-120))),
|
||||
(datetime(2017, 5, 5), datetime(2017, 5, 5)),
|
||||
(0, datetime(1970, 1, 1, 0, 0, 0, tzinfo=timezone.utc)),
|
||||
# Invalid inputs
|
||||
('x20120423091500', ValueError),
|
||||
('2012-04-56T09:15:90', ValueError),
|
||||
|
||||
Reference in New Issue
Block a user