11import re
2- import pytz
32import pytest
43
5- from datetime import date , datetime
4+ from datetime import date , datetime , timezone
65
76from flask_restx import inputs
87
@@ -37,18 +36,18 @@ class Iso8601DatetimeTest(object):
3736 "value,expected" ,
3837 [
3938 ("2011-01-01" , datetime (2011 , 1 , 1 )),
40- ("2011-01-01T00:00:00+00:00" , datetime (2011 , 1 , 1 , tzinfo = pytz .utc )),
39+ ("2011-01-01T00:00:00+00:00" , datetime (2011 , 1 , 1 , tzinfo = timezone .utc )),
4140 (
4241 "2011-01-01T23:59:59+00:00" ,
43- datetime (2011 , 1 , 1 , 23 , 59 , 59 , tzinfo = pytz .utc ),
42+ datetime (2011 , 1 , 1 , 23 , 59 , 59 , tzinfo = timezone .utc ),
4443 ),
4544 (
4645 "2011-01-01T23:59:59.001000+00:00" ,
47- datetime (2011 , 1 , 1 , 23 , 59 , 59 , 1000 , tzinfo = pytz .utc ),
46+ datetime (2011 , 1 , 1 , 23 , 59 , 59 , 1000 , tzinfo = timezone .utc ),
4847 ),
4948 (
5049 "2011-01-01T23:59:59+02:00" ,
51- datetime (2011 , 1 , 1 , 21 , 59 , 59 , tzinfo = pytz .utc ),
50+ datetime (2011 , 1 , 1 , 21 , 59 , 59 , tzinfo = timezone .utc ),
5251 ),
5352 ],
5453 )
@@ -70,22 +69,22 @@ class Rfc822DatetimeTest(object):
7069 @pytest .mark .parametrize (
7170 "value,expected" ,
7271 [
73- ("Sat, 01 Jan 2011" , datetime (2011 , 1 , 1 , tzinfo = pytz .utc )),
74- ("Sat, 01 Jan 2011 00:00" , datetime (2011 , 1 , 1 , tzinfo = pytz .utc )),
75- ("Sat, 01 Jan 2011 00:00:00" , datetime (2011 , 1 , 1 , tzinfo = pytz .utc )),
76- ("Sat, 01 Jan 2011 00:00:00 +0000" , datetime (2011 , 1 , 1 , tzinfo = pytz .utc )),
77- ("Sat, 01 Jan 2011 00:00:00 -0000" , datetime (2011 , 1 , 1 , tzinfo = pytz .utc )),
72+ ("Sat, 01 Jan 2011" , datetime (2011 , 1 , 1 , tzinfo = timezone .utc )),
73+ ("Sat, 01 Jan 2011 00:00" , datetime (2011 , 1 , 1 , tzinfo = timezone .utc )),
74+ ("Sat, 01 Jan 2011 00:00:00" , datetime (2011 , 1 , 1 , tzinfo = timezone .utc )),
75+ ("Sat, 01 Jan 2011 00:00:00 +0000" , datetime (2011 , 1 , 1 , tzinfo = timezone .utc )),
76+ ("Sat, 01 Jan 2011 00:00:00 -0000" , datetime (2011 , 1 , 1 , tzinfo = timezone .utc )),
7877 (
7978 "Sat, 01 Jan 2011 23:59:59 -0000" ,
80- datetime (2011 , 1 , 1 , 23 , 59 , 59 , tzinfo = pytz .utc ),
79+ datetime (2011 , 1 , 1 , 23 , 59 , 59 , tzinfo = timezone .utc ),
8180 ),
8281 (
8382 "Sat, 01 Jan 2011 21:00:00 +0200" ,
84- datetime (2011 , 1 , 1 , 19 , 0 , 0 , tzinfo = pytz .utc ),
83+ datetime (2011 , 1 , 1 , 19 , 0 , 0 , tzinfo = timezone .utc ),
8584 ),
8685 (
8786 "Sat, 01 Jan 2011 21:00:00 -0200" ,
88- datetime (2011 , 1 , 1 , 23 , 0 , 0 , tzinfo = pytz .utc ),
87+ datetime (2011 , 1 , 1 , 23 , 0 , 0 , tzinfo = timezone .utc ),
8988 ),
9089 ],
9190 )
@@ -985,145 +984,145 @@ def test_schema(self):
985984 # Full precision with explicit UTC.
986985 "2013-01-01T12:30:00Z/P1Y2M3DT4H5M6S" ,
987986 (
988- datetime (2013 , 1 , 1 , 12 , 30 , 0 , tzinfo = pytz .utc ),
989- datetime (2014 , 3 , 5 , 16 , 35 , 6 , tzinfo = pytz .utc ),
987+ datetime (2013 , 1 , 1 , 12 , 30 , 0 , tzinfo = timezone .utc ),
988+ datetime (2014 , 3 , 5 , 16 , 35 , 6 , tzinfo = timezone .utc ),
990989 ),
991990 ),
992991 (
993992 # Full precision with alternate UTC indication
994993 "2013-01-01T12:30+00:00/P2D" ,
995994 (
996- datetime (2013 , 1 , 1 , 12 , 30 , 0 , tzinfo = pytz .utc ),
997- datetime (2013 , 1 , 3 , 12 , 30 , 0 , tzinfo = pytz .utc ),
995+ datetime (2013 , 1 , 1 , 12 , 30 , 0 , tzinfo = timezone .utc ),
996+ datetime (2013 , 1 , 3 , 12 , 30 , 0 , tzinfo = timezone .utc ),
998997 ),
999998 ),
1000999 (
10011000 # Implicit UTC with time
10021001 "2013-01-01T15:00/P1M" ,
10031002 (
1004- datetime (2013 , 1 , 1 , 15 , 0 , 0 , tzinfo = pytz .utc ),
1005- datetime (2013 , 1 , 31 , 15 , 0 , 0 , tzinfo = pytz .utc ),
1003+ datetime (2013 , 1 , 1 , 15 , 0 , 0 , tzinfo = timezone .utc ),
1004+ datetime (2013 , 1 , 31 , 15 , 0 , 0 , tzinfo = timezone .utc ),
10061005 ),
10071006 ),
10081007 (
10091008 # TZ conversion
10101009 "2013-01-01T17:00-05:00/P2W" ,
10111010 (
1012- datetime (2013 , 1 , 1 , 22 , 0 , 0 , tzinfo = pytz .utc ),
1013- datetime (2013 , 1 , 15 , 22 , 0 , 0 , tzinfo = pytz .utc ),
1011+ datetime (2013 , 1 , 1 , 22 , 0 , 0 , tzinfo = timezone .utc ),
1012+ datetime (2013 , 1 , 15 , 22 , 0 , 0 , tzinfo = timezone .utc ),
10141013 ),
10151014 ),
10161015 (
10171016 # Date upgrade to midnight-midnight period
10181017 "2013-01-01/P3D" ,
10191018 (
1020- datetime (2013 , 1 , 1 , 0 , 0 , 0 , tzinfo = pytz .utc ),
1021- datetime (2013 , 1 , 4 , 0 , 0 , 0 , 0 , tzinfo = pytz .utc ),
1019+ datetime (2013 , 1 , 1 , 0 , 0 , 0 , tzinfo = timezone .utc ),
1020+ datetime (2013 , 1 , 4 , 0 , 0 , 0 , 0 , tzinfo = timezone .utc ),
10221021 ),
10231022 ),
10241023 (
10251024 # Start/end with UTC
10261025 "2013-01-01T12:00:00Z/2013-02-01T12:00:00Z" ,
10271026 (
1028- datetime (2013 , 1 , 1 , 12 , 0 , 0 , tzinfo = pytz .utc ),
1029- datetime (2013 , 2 , 1 , 12 , 0 , 0 , tzinfo = pytz .utc ),
1027+ datetime (2013 , 1 , 1 , 12 , 0 , 0 , tzinfo = timezone .utc ),
1028+ datetime (2013 , 2 , 1 , 12 , 0 , 0 , tzinfo = timezone .utc ),
10301029 ),
10311030 ),
10321031 (
10331032 # Start/end with time upgrade
10341033 "2013-01-01/2013-06-30" ,
10351034 (
1036- datetime (2013 , 1 , 1 , tzinfo = pytz .utc ),
1037- datetime (2013 , 6 , 30 , tzinfo = pytz .utc ),
1035+ datetime (2013 , 1 , 1 , tzinfo = timezone .utc ),
1036+ datetime (2013 , 6 , 30 , tzinfo = timezone .utc ),
10381037 ),
10391038 ),
10401039 (
10411040 # Start/end with TZ conversion
10421041 "2013-02-17T12:00:00-07:00/2013-02-28T15:00:00-07:00" ,
10431042 (
1044- datetime (2013 , 2 , 17 , 19 , 0 , 0 , tzinfo = pytz .utc ),
1045- datetime (2013 , 2 , 28 , 22 , 0 , 0 , tzinfo = pytz .utc ),
1043+ datetime (2013 , 2 , 17 , 19 , 0 , 0 , tzinfo = timezone .utc ),
1044+ datetime (2013 , 2 , 28 , 22 , 0 , 0 , tzinfo = timezone .utc ),
10461045 ),
10471046 ),
10481047 ( # Resolution expansion for single date(time)
10491048 # Second with UTC
10501049 "2013-01-01T12:30:45Z" ,
10511050 (
1052- datetime (2013 , 1 , 1 , 12 , 30 , 45 , tzinfo = pytz .utc ),
1053- datetime (2013 , 1 , 1 , 12 , 30 , 46 , tzinfo = pytz .utc ),
1051+ datetime (2013 , 1 , 1 , 12 , 30 , 45 , tzinfo = timezone .utc ),
1052+ datetime (2013 , 1 , 1 , 12 , 30 , 46 , tzinfo = timezone .utc ),
10541053 ),
10551054 ),
10561055 (
10571056 # Second with tz conversion
10581057 "2013-01-01T12:30:45+02:00" ,
10591058 (
1060- datetime (2013 , 1 , 1 , 10 , 30 , 45 , tzinfo = pytz .utc ),
1061- datetime (2013 , 1 , 1 , 10 , 30 , 46 , tzinfo = pytz .utc ),
1059+ datetime (2013 , 1 , 1 , 10 , 30 , 45 , tzinfo = timezone .utc ),
1060+ datetime (2013 , 1 , 1 , 10 , 30 , 46 , tzinfo = timezone .utc ),
10621061 ),
10631062 ),
10641063 (
10651064 # Second with implicit UTC
10661065 "2013-01-01T12:30:45" ,
10671066 (
1068- datetime (2013 , 1 , 1 , 12 , 30 , 45 , tzinfo = pytz .utc ),
1069- datetime (2013 , 1 , 1 , 12 , 30 , 46 , tzinfo = pytz .utc ),
1067+ datetime (2013 , 1 , 1 , 12 , 30 , 45 , tzinfo = timezone .utc ),
1068+ datetime (2013 , 1 , 1 , 12 , 30 , 46 , tzinfo = timezone .utc ),
10701069 ),
10711070 ),
10721071 (
10731072 # Minute with UTC
10741073 "2013-01-01T12:30+00:00" ,
10751074 (
1076- datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = pytz .utc ),
1077- datetime (2013 , 1 , 1 , 12 , 31 , tzinfo = pytz .utc ),
1075+ datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = timezone .utc ),
1076+ datetime (2013 , 1 , 1 , 12 , 31 , tzinfo = timezone .utc ),
10781077 ),
10791078 ),
10801079 (
10811080 # Minute with conversion
10821081 "2013-01-01T12:30+04:00" ,
10831082 (
1084- datetime (2013 , 1 , 1 , 8 , 30 , tzinfo = pytz .utc ),
1085- datetime (2013 , 1 , 1 , 8 , 31 , tzinfo = pytz .utc ),
1083+ datetime (2013 , 1 , 1 , 8 , 30 , tzinfo = timezone .utc ),
1084+ datetime (2013 , 1 , 1 , 8 , 31 , tzinfo = timezone .utc ),
10861085 ),
10871086 ),
10881087 (
10891088 # Minute with implicit UTC
10901089 "2013-01-01T12:30" ,
10911090 (
1092- datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = pytz .utc ),
1093- datetime (2013 , 1 , 1 , 12 , 31 , tzinfo = pytz .utc ),
1091+ datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = timezone .utc ),
1092+ datetime (2013 , 1 , 1 , 12 , 31 , tzinfo = timezone .utc ),
10941093 ),
10951094 ),
10961095 (
10971096 # Hour, explicit UTC
10981097 "2013-01-01T12Z" ,
10991098 (
1100- datetime (2013 , 1 , 1 , 12 , tzinfo = pytz .utc ),
1101- datetime (2013 , 1 , 1 , 13 , tzinfo = pytz .utc ),
1099+ datetime (2013 , 1 , 1 , 12 , tzinfo = timezone .utc ),
1100+ datetime (2013 , 1 , 1 , 13 , tzinfo = timezone .utc ),
11021101 ),
11031102 ),
11041103 (
11051104 # Hour with offset
11061105 "2013-01-01T12-07:00" ,
11071106 (
1108- datetime (2013 , 1 , 1 , 19 , tzinfo = pytz .utc ),
1109- datetime (2013 , 1 , 1 , 20 , tzinfo = pytz .utc ),
1107+ datetime (2013 , 1 , 1 , 19 , tzinfo = timezone .utc ),
1108+ datetime (2013 , 1 , 1 , 20 , tzinfo = timezone .utc ),
11101109 ),
11111110 ),
11121111 (
11131112 # Hour with implicit UTC
11141113 "2013-01-01T12" ,
11151114 (
1116- datetime (2013 , 1 , 1 , 12 , tzinfo = pytz .utc ),
1117- datetime (2013 , 1 , 1 , 13 , tzinfo = pytz .utc ),
1115+ datetime (2013 , 1 , 1 , 12 , tzinfo = timezone .utc ),
1116+ datetime (2013 , 1 , 1 , 13 , tzinfo = timezone .utc ),
11181117 ),
11191118 ),
11201119 (
11211120 # Interval with trailing zero fractional seconds should
11221121 # be accepted.
11231122 "2013-01-01T12:00:00.0/2013-01-01T12:30:00.000000" ,
11241123 (
1125- datetime (2013 , 1 , 1 , 12 , tzinfo = pytz .utc ),
1126- datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = pytz .utc ),
1124+ datetime (2013 , 1 , 1 , 12 , tzinfo = timezone .utc ),
1125+ datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = timezone .utc ),
11271126 ),
11281127 ),
11291128]
0 commit comments