mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Add datetime module to the list of supported pyi-stubs.
Update stubs and add tests for them.
This commit is contained in:
committed by
Semyon Proshev
parent
901c7bad2c
commit
4ae7311494
@@ -21,7 +21,7 @@ class date(object):
|
||||
max = ... # type: date
|
||||
resolution = ... # type: timedelta
|
||||
|
||||
def __init__(self, year: int, month: int = ..., day: int = ...) -> None: ...
|
||||
def __init__(self, year: int, month: int, day: int) -> None: ...
|
||||
|
||||
@classmethod
|
||||
def fromtimestamp(cls, t: float) -> date: ...
|
||||
@@ -125,11 +125,9 @@ class timedelta(SupportsAbs[timedelta]):
|
||||
@overload
|
||||
def __floordiv__(self, other: int) -> timedelta: ...
|
||||
@overload
|
||||
def __truediv__(self, other: timedelta) -> float: ...
|
||||
def __div__(self, other: timedelta) -> float: ...
|
||||
@overload
|
||||
def __truediv__(self, other: float) -> timedelta: ...
|
||||
def __mod__(self, other: timedelta) -> timedelta: ...
|
||||
def __divmod__(self, other: timedelta) -> Tuple[int, timedelta]: ...
|
||||
def __div__(self, other: float) -> timedelta: ...
|
||||
def __le__(self, other: timedelta) -> bool: ...
|
||||
def __lt__(self, other: timedelta) -> bool: ...
|
||||
def __ge__(self, other: timedelta) -> bool: ...
|
||||
@@ -142,7 +140,7 @@ class datetime(object):
|
||||
max = ... # type: datetime
|
||||
resolution = ... # type: timedelta
|
||||
|
||||
def __init__(self, year: int, month: int = ..., day: int = ..., hour: int = ...,
|
||||
def __init__(self, year: int, month: int, day: int, hour: int = ...,
|
||||
minute: int = ..., second: int = ..., microseconds: int = ...,
|
||||
tzinfo: tzinfo = ...) -> None: ...
|
||||
|
||||
@@ -161,7 +159,7 @@ class datetime(object):
|
||||
@property
|
||||
def microsecond(self) -> int: ...
|
||||
@property
|
||||
def tzinfo(self) -> _tzinfo: ...
|
||||
def tzinfo(self) -> Optional[_tzinfo]: ...
|
||||
|
||||
@classmethod
|
||||
def fromtimestamp(cls, t: float, tz: _tzinfo = ...) -> datetime: ...
|
||||
@@ -181,7 +179,6 @@ class datetime(object):
|
||||
def __format__(self, fmt: str) -> str: ...
|
||||
def toordinal(self) -> int: ...
|
||||
def timetuple(self) -> struct_time: ...
|
||||
def timestamp(self) -> float: ...
|
||||
def utctimetuple(self) -> struct_time: ...
|
||||
def date(self) -> _date: ...
|
||||
def time(self) -> _time: ...
|
||||
@@ -189,7 +186,7 @@ class datetime(object):
|
||||
def replace(self, year: int = ..., month: int = ..., day: int = ..., hour: int = ...,
|
||||
minute: int = ..., second: int = ..., microsecond: int = ..., tzinfo:
|
||||
Union[_tzinfo, bool] = ...) -> datetime: ...
|
||||
def astimezone(self, tz: _tzinfo = ...) -> datetime: ...
|
||||
def astimezone(self, tz: _tzinfo) -> datetime: ...
|
||||
def ctime(self) -> str: ...
|
||||
def isoformat(self, sep: str = ...) -> str: ...
|
||||
@classmethod
|
||||
|
||||
@@ -31,7 +31,7 @@ class date:
|
||||
max = ... # type: date
|
||||
resolution = ... # type: timedelta
|
||||
|
||||
def __init__(self, year: int, month: int = ..., day: int = ...) -> None: ...
|
||||
def __init__(self, year: int, month: int, day: int) -> None: ...
|
||||
|
||||
@classmethod
|
||||
def fromtimestamp(cls, t: float) -> date: ...
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2016 JetBrains s.r.o.
|
||||
* Copyright 2000-2017 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -40,7 +40,7 @@ object PyTypeShed {
|
||||
private val ONLY_SUPPORTED_PY2_MINOR = 7
|
||||
private val SUPPORTED_PY3_MINORS = 2..6
|
||||
// TODO: Warn about unresolved `import typing` but still resolve it internally for type inference
|
||||
val WHITE_LIST = setOf("typing", "six", "__builtin__", "builtins", "exceptions", "types")
|
||||
val WHITE_LIST = setOf("typing", "six", "__builtin__", "builtins", "exceptions", "types", "datetime")
|
||||
private val BLACK_LIST = setOf<String>()
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,211 @@
|
||||
def test_date():
|
||||
from datetime import date, timedelta
|
||||
|
||||
d = date(2000, 12, 15)
|
||||
|
||||
assert d.min == date(1, 1, 1)
|
||||
assert d.max == date(9999, 12, 31)
|
||||
assert d.resolution == timedelta(1)
|
||||
|
||||
assert date.fromtimestamp(2048) == date(1970, 1, 1)
|
||||
assert isinstance(date.today(), date)
|
||||
assert date.fromordinal(2048) == date(6, 8, 10)
|
||||
|
||||
assert d.year == 2000
|
||||
assert d.month == 12
|
||||
assert d.day == 15
|
||||
|
||||
assert d.ctime() == "Fri Dec 15 00:00:00 2000"
|
||||
assert d.strftime("%d") == "15"
|
||||
assert format(d, "%d") == "15"
|
||||
assert d.isoformat() == "2000-12-15"
|
||||
assert [d.timetuple()[i] for i in range(3)] == [2000, 12, 15]
|
||||
assert d.toordinal() == 730469
|
||||
|
||||
assert d.replace() == date(2000, 12, 15)
|
||||
assert d.replace(2001) == date(2001, d.month, d.day)
|
||||
assert d.replace(2001, 11) == date(2001, 11, d.day)
|
||||
assert d.replace(2001, 11, 16) == date(2001, 11, 16)
|
||||
|
||||
assert d < date(2000, 12, 16)
|
||||
assert d <= date(2000, 12, 15)
|
||||
assert d > date(2000, 12, 14)
|
||||
assert d >= date(2000, 12, 15)
|
||||
|
||||
assert d + timedelta(3) == date(2000, 12, 18)
|
||||
assert d - timedelta(3) == date(2000, 12, 12)
|
||||
assert d - date(2000, 6, 8) == timedelta(190)
|
||||
|
||||
assert d.weekday() == 4
|
||||
assert d.isoweekday() == 5
|
||||
assert d.isocalendar() == (2000, 50, 5)
|
||||
|
||||
|
||||
def test_time():
|
||||
from datetime import time, timedelta
|
||||
|
||||
time()
|
||||
time(23)
|
||||
|
||||
t1 = time(23, 25)
|
||||
t = time(23, 25, 30)
|
||||
t2 = time(23, 25, 30, 50)
|
||||
|
||||
assert t.min == time()
|
||||
assert t.max == time(23, 59, 59, 999999)
|
||||
assert t.resolution == timedelta(microseconds=1)
|
||||
|
||||
assert t.hour == 23
|
||||
assert t.minute == 25
|
||||
assert t.second == 30
|
||||
assert t.microsecond == 0
|
||||
assert t.tzinfo is None
|
||||
|
||||
assert t < t2
|
||||
assert t <= time(23, 25, 30)
|
||||
assert t > t1
|
||||
assert t >= time(23, 25, 30)
|
||||
|
||||
assert t.isoformat() == "23:25:30"
|
||||
assert t.strftime("%m") == "01"
|
||||
assert format(t, "%m") == "01"
|
||||
|
||||
assert t.utcoffset() is None
|
||||
assert t.tzname() is None
|
||||
assert t.dst() is None
|
||||
|
||||
assert t.replace(22) == time(22, t.minute, t.second)
|
||||
assert t.replace(22, 24) == time(22, 24, t.second)
|
||||
assert t.replace(22, 24, 29) == time(22, 24, 29)
|
||||
|
||||
t3 = time(23, 25, 20, tzinfo=None)
|
||||
assert t3.tzinfo is None
|
||||
assert t3.replace(tzinfo=None).tzinfo is None
|
||||
|
||||
|
||||
def test_timedelta():
|
||||
from datetime import timedelta
|
||||
|
||||
timedelta()
|
||||
timedelta(5)
|
||||
timedelta(5, 6)
|
||||
timedelta(5, 6, 7)
|
||||
timedelta(5, 6, 7, 8)
|
||||
timedelta(5, 6, 7, 8, 9)
|
||||
timedelta(5, 6, 7, 8, 9, 10)
|
||||
timedelta(5, 6, 7, 8, 9, 10, 11)
|
||||
|
||||
td1 = timedelta(hours=1, minutes=10, seconds=10)
|
||||
td = timedelta(hours=1, minutes=10, seconds=20)
|
||||
td2 = timedelta(hours=1, minutes=10, seconds=30)
|
||||
|
||||
assert td.min == timedelta(days=-999999999)
|
||||
assert td.max == timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)
|
||||
assert td.resolution == timedelta(microseconds=1)
|
||||
|
||||
assert td.days == 0
|
||||
assert td.seconds == 4220
|
||||
assert td.microseconds == 0
|
||||
|
||||
assert td.total_seconds() == 4220
|
||||
|
||||
assert td + td1 == timedelta(hours=2, minutes=20, seconds=30)
|
||||
assert td2 - td == timedelta(seconds=10)
|
||||
|
||||
assert -td == timedelta(days=-1, hours=22, minutes=49, seconds=40)
|
||||
assert +td == td
|
||||
|
||||
assert abs(td) == td
|
||||
|
||||
assert td.__mul__(2) == timedelta(hours=2, minutes=20, seconds=40)
|
||||
assert td.__rmul__(2) == timedelta(hours=2, minutes=20, seconds=40)
|
||||
|
||||
assert td.__floordiv__(2) == timedelta(minutes=35, seconds=10)
|
||||
assert td.__floordiv__(timedelta(minutes=5)) == NotImplemented
|
||||
|
||||
assert td.__div__(2) == timedelta(minutes=35, seconds=10)
|
||||
assert td.__div__(timedelta(minutes=5)) == NotImplemented
|
||||
|
||||
assert td < td2
|
||||
assert td <= timedelta(hours=1, minutes=10, seconds=20)
|
||||
assert td > td1
|
||||
assert td >= timedelta(hours=1, minutes=10, seconds=20)
|
||||
|
||||
|
||||
def test_datetime():
|
||||
from datetime import datetime, timedelta, date, time
|
||||
|
||||
datetime(2000, 12, 25)
|
||||
datetime(2000, 12, 25, 23)
|
||||
datetime(2000, 12, 25, 23, 59)
|
||||
datetime(2000, 12, 25, 23, 59, 59)
|
||||
datetime(2000, 12, 25, 23, 59, 59, 60)
|
||||
dt1 = datetime(2000, 12, 24, 23, 59, 59)
|
||||
dt = datetime(2000, 12, 25, 23, 59, 59)
|
||||
dt2 = datetime(2000, 12, 26, 23, 59, 59)
|
||||
|
||||
assert dt.min == datetime(1, 1, 1)
|
||||
assert dt.max == datetime(9999, 12, 31, 23, 59, 59, 999999)
|
||||
assert dt.resolution == timedelta(microseconds=1)
|
||||
|
||||
assert dt.year == 2000
|
||||
assert dt.month == 12
|
||||
assert dt.day == 25
|
||||
assert dt.hour == 23
|
||||
assert dt.minute == 59
|
||||
assert dt.second == 59
|
||||
assert dt.microsecond == 0
|
||||
assert dt.tzinfo is None
|
||||
|
||||
assert datetime.utcfromtimestamp(2048) == datetime(1970, 1, 1, 0, 34, 8)
|
||||
assert isinstance(datetime.today(), datetime)
|
||||
assert datetime.fromordinal(2048) == datetime(6, 8, 10)
|
||||
assert isinstance(datetime.utcnow(), datetime)
|
||||
assert datetime.combine(date(2000, 12, 25), time(23, 59, 59)) == dt
|
||||
assert datetime.strptime("2000 12 25 23 59 59", "%Y %m %d %H %M %S") == dt
|
||||
|
||||
assert dt.strftime("%Y %m %d %H %M %S") == "2000 12 25 23 59 59"
|
||||
assert format(dt, "%Y %m %d %H %M %S") == "2000 12 25 23 59 59"
|
||||
|
||||
assert dt.toordinal() == 730479
|
||||
assert [dt.timetuple()[i] for i in range(6)] == [2000, 12, 25, 23, 59, 59]
|
||||
assert [dt.utctimetuple()[i] for i in range(6)] == [2000, 12, 25, 23, 59, 59]
|
||||
assert dt.date() == date(2000, 12, 25)
|
||||
assert dt.time() == time(23, 59, 59)
|
||||
assert dt.timetz() == time(23, 59, 59)
|
||||
assert dt.ctime() == "Mon Dec 25 23:59:59 2000"
|
||||
assert dt.isoformat() == "2000-12-25T23:59:59"
|
||||
assert dt.utcoffset() is None
|
||||
assert dt.tzname() is None
|
||||
assert dt.dst() is None
|
||||
assert dt.weekday() == 0
|
||||
assert dt.isoweekday() == 1
|
||||
assert dt.isocalendar() == (2000, 52, 1)
|
||||
|
||||
assert dt.replace(2001) == datetime(2001, dt.month, dt.day, dt.hour, dt.minute, dt.second)
|
||||
assert dt.replace(2001, 11) == datetime(2001, 11, dt.day, dt.hour, dt.minute, dt.second)
|
||||
assert dt.replace(2001, 11, 24) == datetime(2001, 11, 24, dt.hour, dt.minute, dt.second)
|
||||
assert dt.replace(2001, 11, 24, 22) == datetime(2001, 11, 24, 22, dt.minute, dt.second)
|
||||
assert dt.replace(2001, 11, 24, 22, 58) == datetime(2001, 11, 24, 22, 58, dt.second)
|
||||
assert dt.replace(2001, 11, 24, 22, 58, 58) == datetime(2001, 11, 24, 22, 58, 58)
|
||||
|
||||
assert dt < dt2
|
||||
assert dt <= datetime(2000, 12, 25, 23, 59, 59)
|
||||
assert dt > dt1
|
||||
assert dt >= datetime(2000, 12, 25, 23, 59, 59)
|
||||
|
||||
assert dt + timedelta(3) == datetime(2000, 12, 28, 23, 59, 59)
|
||||
assert dt - timedelta(3) == datetime(2000, 12, 22, 23, 59, 59)
|
||||
assert dt - dt1 == timedelta(1)
|
||||
|
||||
assert datetime.fromtimestamp(2048, None) == datetime(1970, 1, 1, 3, 34, 8)
|
||||
assert datetime.fromtimestamp(2048) == datetime(1970, 1, 1, 3, 34, 8)
|
||||
|
||||
assert isinstance(datetime.now(None), datetime)
|
||||
assert isinstance(datetime.now(), datetime)
|
||||
|
||||
dt3 = datetime(2000, 12, 25, 15, 16, 17, tzinfo=None)
|
||||
assert dt3.tzinfo is None
|
||||
|
||||
dt4 = dt3.replace(tzinfo=None)
|
||||
assert dt4.tzinfo is None
|
||||
@@ -0,0 +1,276 @@
|
||||
def test_timezone():
|
||||
from datetime import datetime, timedelta, timezone
|
||||
|
||||
tz_min = timezone(timedelta(minutes=-(60 * 24 - 1)))
|
||||
tz_max = timezone(timedelta(minutes=60 * 24 - 1))
|
||||
|
||||
tz1 = timezone(timedelta(hours=2))
|
||||
dt1 = datetime(2000, 12, 15, 15, 16, 17, tzinfo=tz1)
|
||||
|
||||
assert tz1.utc == timezone(timedelta())
|
||||
assert tz1.min == tz_min
|
||||
assert tz1.max == tz_max
|
||||
|
||||
assert tz1.tzname(dt1) == "UTC+02:00"
|
||||
assert tz1.utcoffset(dt1) == timedelta(hours=2)
|
||||
assert tz1.dst(dt1) is None
|
||||
assert tz1.fromutc(dt1) == datetime(2000, 12, 15, 17, 16, 17, tzinfo=tz1)
|
||||
|
||||
tz2 = timezone(timedelta(hours=-2), "NaMe")
|
||||
dt2 = datetime(2000, 12, 15, 15, 16, 17, tzinfo=tz2)
|
||||
|
||||
assert tz2.utc == timezone(timedelta())
|
||||
assert tz2.min == tz_min
|
||||
assert tz2.max == tz_max
|
||||
|
||||
assert tz2.tzname(None) == "NaMe"
|
||||
assert tz2.utcoffset(None) == timedelta(hours=-2)
|
||||
assert tz2.dst(None) is None
|
||||
assert tz2.fromutc(dt2) == datetime(2000, 12, 15, 13, 16, 17, tzinfo=tz2)
|
||||
|
||||
|
||||
def test_date():
|
||||
from datetime import date, timedelta
|
||||
|
||||
d = date(2000, 12, 15)
|
||||
|
||||
assert d.min == date(1, 1, 1)
|
||||
assert d.max == date(9999, 12, 31)
|
||||
assert d.resolution == timedelta(1)
|
||||
|
||||
assert date.fromtimestamp(2048) == date(1970, 1, 1)
|
||||
assert isinstance(date.today(), date)
|
||||
assert date.fromordinal(2048) == date(6, 8, 10)
|
||||
|
||||
assert d.year == 2000
|
||||
assert d.month == 12
|
||||
assert d.day == 15
|
||||
|
||||
assert d.ctime() == "Fri Dec 15 00:00:00 2000"
|
||||
assert d.strftime("%d") == "15"
|
||||
assert format(d, "%d") == "15"
|
||||
assert d.isoformat() == "2000-12-15"
|
||||
assert [d.timetuple()[i] for i in range(3)] == [2000, 12, 15]
|
||||
assert d.toordinal() == 730469
|
||||
|
||||
assert d.replace() == date(2000, 12, 15)
|
||||
assert d.replace(2001) == date(2001, d.month, d.day)
|
||||
assert d.replace(2001, 11) == date(2001, 11, d.day)
|
||||
assert d.replace(2001, 11, 16) == date(2001, 11, 16)
|
||||
|
||||
assert d < date(2000, 12, 16)
|
||||
assert d <= date(2000, 12, 15)
|
||||
assert d > date(2000, 12, 14)
|
||||
assert d >= date(2000, 12, 15)
|
||||
|
||||
assert d + timedelta(3) == date(2000, 12, 18)
|
||||
assert d - timedelta(3) == date(2000, 12, 12)
|
||||
assert d - date(2000, 6, 8) == timedelta(190)
|
||||
|
||||
assert d.weekday() == 4
|
||||
assert d.isoweekday() == 5
|
||||
assert d.isocalendar() == (2000, 50, 5)
|
||||
|
||||
|
||||
def test_time():
|
||||
from datetime import time, timedelta
|
||||
|
||||
time()
|
||||
time(23)
|
||||
|
||||
t1 = time(23, 25)
|
||||
t = time(23, 25, 30)
|
||||
t2 = time(23, 25, 30, 50)
|
||||
|
||||
assert t.min == time()
|
||||
assert t.max == time(23, 59, 59, 999999)
|
||||
assert t.resolution == timedelta(microseconds=1)
|
||||
|
||||
assert t.hour == 23
|
||||
assert t.minute == 25
|
||||
assert t.second == 30
|
||||
assert t.microsecond == 0
|
||||
assert t.tzinfo is None
|
||||
|
||||
assert t < t2
|
||||
assert t <= time(23, 25, 30)
|
||||
assert t > t1
|
||||
assert t >= time(23, 25, 30)
|
||||
|
||||
assert t.isoformat() == "23:25:30"
|
||||
assert t.strftime("%m") == "01"
|
||||
assert format(t, "%m") == "01"
|
||||
|
||||
assert t.utcoffset() is None
|
||||
assert t.tzname() is None
|
||||
assert t.dst() is None
|
||||
|
||||
assert t.replace(22) == time(22, t.minute, t.second)
|
||||
assert t.replace(22, 24) == time(22, 24, t.second)
|
||||
assert t.replace(22, 24, 29) == time(22, 24, 29)
|
||||
|
||||
from datetime import timezone
|
||||
|
||||
t3 = time(23, 25, 20, tzinfo=None)
|
||||
assert t3.tzinfo is None
|
||||
t4 = t3.replace(tzinfo=timezone(timedelta(hours=2)))
|
||||
assert t4.tzinfo == timezone(timedelta(hours=2))
|
||||
|
||||
t5 = time(23, 25, 20, tzinfo=timezone(timedelta(hours=2)))
|
||||
assert t5.tzinfo == timezone(timedelta(hours=2))
|
||||
t6 = t5.replace(tzinfo=None)
|
||||
assert t6.tzinfo is None
|
||||
|
||||
|
||||
def test_timedelta():
|
||||
from datetime import timedelta
|
||||
|
||||
timedelta()
|
||||
timedelta(5)
|
||||
timedelta(5, 6)
|
||||
timedelta(5, 6, 7)
|
||||
timedelta(5, 6, 7, 8)
|
||||
timedelta(5, 6, 7, 8, 9)
|
||||
timedelta(5, 6, 7, 8, 9, 10)
|
||||
timedelta(5, 6, 7, 8, 9, 10, 11)
|
||||
|
||||
td1 = timedelta(hours=1, minutes=10, seconds=10)
|
||||
td = timedelta(hours=1, minutes=10, seconds=20)
|
||||
td2 = timedelta(hours=1, minutes=10, seconds=30)
|
||||
|
||||
assert td.min == timedelta(days=-999999999)
|
||||
assert td.max == timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)
|
||||
assert td.resolution == timedelta(microseconds=1)
|
||||
|
||||
assert td.days == 0
|
||||
assert td.seconds == 4220
|
||||
assert td.microseconds == 0
|
||||
|
||||
assert td.total_seconds() == 4220
|
||||
|
||||
assert td + td1 == timedelta(hours=2, minutes=20, seconds=30)
|
||||
assert td2 - td == timedelta(seconds=10)
|
||||
|
||||
assert -td == timedelta(days=-1, hours=22, minutes=49, seconds=40)
|
||||
assert +td == td
|
||||
|
||||
assert abs(td) == td
|
||||
|
||||
assert td.__mul__(2) == timedelta(hours=2, minutes=20, seconds=40)
|
||||
assert td.__rmul__(2) == timedelta(hours=2, minutes=20, seconds=40)
|
||||
|
||||
assert td.__floordiv__(2) == timedelta(minutes=35, seconds=10)
|
||||
assert td.__floordiv__(timedelta(minutes=5)) == 14
|
||||
|
||||
assert td.__truediv__(2) == timedelta(minutes=35, seconds=10)
|
||||
td_result = td.__truediv__(timedelta(minutes=5))
|
||||
assert 14.0 < td_result
|
||||
assert td_result < 14.1
|
||||
|
||||
assert td.__mod__(timedelta(minutes=5)) == timedelta(seconds=20)
|
||||
assert td.__divmod__(timedelta(minutes=5)) == (14, timedelta(seconds=20))
|
||||
|
||||
assert td < td2
|
||||
assert td <= timedelta(hours=1, minutes=10, seconds=20)
|
||||
assert td > td1
|
||||
assert td >= timedelta(hours=1, minutes=10, seconds=20)
|
||||
|
||||
|
||||
def test_datetime():
|
||||
from datetime import datetime, timedelta, date, time
|
||||
|
||||
datetime(2000, 12, 25)
|
||||
datetime(2000, 12, 25, 23)
|
||||
datetime(2000, 12, 25, 23, 59)
|
||||
datetime(2000, 12, 25, 23, 59, 59)
|
||||
datetime(2000, 12, 25, 23, 59, 59, 60)
|
||||
dt1 = datetime(2000, 12, 24, 23, 59, 59)
|
||||
dt = datetime(2000, 12, 25, 23, 59, 59)
|
||||
dt2 = datetime(2000, 12, 26, 23, 59, 59)
|
||||
|
||||
assert dt.min == datetime(1, 1, 1)
|
||||
assert dt.max == datetime(9999, 12, 31, 23, 59, 59, 999999)
|
||||
assert dt.resolution == timedelta(microseconds=1)
|
||||
|
||||
assert dt.year == 2000
|
||||
assert dt.month == 12
|
||||
assert dt.day == 25
|
||||
assert dt.hour == 23
|
||||
assert dt.minute == 59
|
||||
assert dt.second == 59
|
||||
assert dt.microsecond == 0
|
||||
assert dt.tzinfo is None
|
||||
|
||||
assert datetime.utcfromtimestamp(2048) == datetime(1970, 1, 1, 0, 34, 8)
|
||||
assert isinstance(datetime.today(), datetime)
|
||||
assert datetime.fromordinal(2048) == datetime(6, 8, 10)
|
||||
assert isinstance(datetime.utcnow(), datetime)
|
||||
assert datetime.combine(date(2000, 12, 25), time(23, 59, 59)) == dt
|
||||
assert datetime.strptime("2000 12 25 23 59 59", "%Y %m %d %H %M %S") == dt
|
||||
|
||||
assert dt.strftime("%Y %m %d %H %M %S") == "2000 12 25 23 59 59"
|
||||
assert format(dt, "%Y %m %d %H %M %S") == "2000 12 25 23 59 59"
|
||||
|
||||
assert dt.toordinal() == 730479
|
||||
assert [dt.timetuple()[i] for i in range(6)] == [2000, 12, 25, 23, 59, 59]
|
||||
assert dt.timestamp() == 977777999.0
|
||||
assert [dt.utctimetuple()[i] for i in range(6)] == [2000, 12, 25, 23, 59, 59]
|
||||
assert dt.date() == date(2000, 12, 25)
|
||||
assert dt.time() == time(23, 59, 59)
|
||||
assert dt.timetz() == time(23, 59, 59)
|
||||
assert dt.ctime() == "Mon Dec 25 23:59:59 2000"
|
||||
assert dt.isoformat() == "2000-12-25T23:59:59"
|
||||
assert dt.utcoffset() is None
|
||||
assert dt.tzname() is None
|
||||
assert dt.dst() is None
|
||||
assert dt.weekday() == 0
|
||||
assert dt.isoweekday() == 1
|
||||
assert dt.isocalendar() == (2000, 52, 1)
|
||||
|
||||
assert dt.replace(2001) == datetime(2001, dt.month, dt.day, dt.hour, dt.minute, dt.second)
|
||||
assert dt.replace(2001, 11) == datetime(2001, 11, dt.day, dt.hour, dt.minute, dt.second)
|
||||
assert dt.replace(2001, 11, 24) == datetime(2001, 11, 24, dt.hour, dt.minute, dt.second)
|
||||
assert dt.replace(2001, 11, 24, 22) == datetime(2001, 11, 24, 22, dt.minute, dt.second)
|
||||
assert dt.replace(2001, 11, 24, 22, 58) == datetime(2001, 11, 24, 22, 58, dt.second)
|
||||
assert dt.replace(2001, 11, 24, 22, 58, 58) == datetime(2001, 11, 24, 22, 58, 58)
|
||||
|
||||
assert dt < dt2
|
||||
assert dt <= datetime(2000, 12, 25, 23, 59, 59)
|
||||
assert dt > dt1
|
||||
assert dt >= datetime(2000, 12, 25, 23, 59, 59)
|
||||
|
||||
assert dt + timedelta(3) == datetime(2000, 12, 28, 23, 59, 59)
|
||||
assert dt - timedelta(3) == datetime(2000, 12, 22, 23, 59, 59)
|
||||
assert dt - dt1 == timedelta(1)
|
||||
|
||||
from datetime import timezone
|
||||
|
||||
assert datetime.fromtimestamp(2048, timezone(timedelta(hours=2))) == datetime(1970, 1, 1, 2, 34, 8, tzinfo=timezone(timedelta(hours=2)))
|
||||
assert datetime.fromtimestamp(2048, None) == datetime(1970, 1, 1, 3, 34, 8)
|
||||
assert datetime.fromtimestamp(2048) == datetime(1970, 1, 1, 3, 34, 8)
|
||||
|
||||
assert isinstance(datetime.now(timezone(timedelta(hours=2))), datetime)
|
||||
assert isinstance(datetime.now(None), datetime)
|
||||
assert isinstance(datetime.now(), datetime)
|
||||
|
||||
dt3 = datetime(2000, 12, 25, 15, 16, 17, tzinfo=timezone(timedelta(hours=2)))
|
||||
assert dt3.tzinfo == timezone(timedelta(hours=2))
|
||||
|
||||
assert dt3.astimezone(timezone(timedelta(hours=-2))) == datetime(2000, 12, 25, 11, 16, 17, tzinfo=timezone(timedelta(hours=-2)))
|
||||
assert isinstance(dt3.astimezone(None), datetime)
|
||||
assert isinstance(dt3.astimezone(), datetime)
|
||||
|
||||
dt4 = dt3.replace(tzinfo=None)
|
||||
assert dt4.tzinfo is None
|
||||
|
||||
dt5 = datetime(2000, 12, 25, 15, 16, 17, tzinfo=None)
|
||||
assert dt5.tzinfo is None
|
||||
|
||||
import sys
|
||||
if sys.version_info >= (3, 6):
|
||||
assert dt5.astimezone(timezone(timedelta(hours=-2))) == datetime(2000, 12, 25, 10, 16, 17, tzinfo=timezone(timedelta(hours=-2)))
|
||||
assert isinstance(dt5.astimezone(None), datetime)
|
||||
assert isinstance(dt5.astimezone(), datetime)
|
||||
|
||||
dt6 = dt5.replace(tzinfo=timezone(timedelta(hours=2)))
|
||||
assert dt6.tzinfo == timezone(timedelta(hours=2))
|
||||
Reference in New Issue
Block a user