1
1
import re
2
- import pytz
3
2
import pytest
4
3
5
- from datetime import date , datetime
4
+ from datetime import date , datetime , timezone
6
5
7
6
from flask_restx import inputs
8
7
@@ -37,18 +36,18 @@ class Iso8601DatetimeTest(object):
37
36
"value,expected" ,
38
37
[
39
38
("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 )),
41
40
(
42
41
"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 ),
44
43
),
45
44
(
46
45
"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 ),
48
47
),
49
48
(
50
49
"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 ),
52
51
),
53
52
],
54
53
)
@@ -70,22 +69,28 @@ class Rfc822DatetimeTest(object):
70
69
@pytest .mark .parametrize (
71
70
"value,expected" ,
72
71
[
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
+ (
76
+ "Sat, 01 Jan 2011 00:00:00 +0000" ,
77
+ datetime (2011 , 1 , 1 , tzinfo = timezone .utc ),
78
+ ),
79
+ (
80
+ "Sat, 01 Jan 2011 00:00:00 -0000" ,
81
+ datetime (2011 , 1 , 1 , tzinfo = timezone .utc ),
82
+ ),
78
83
(
79
84
"Sat, 01 Jan 2011 23:59:59 -0000" ,
80
- datetime (2011 , 1 , 1 , 23 , 59 , 59 , tzinfo = pytz .utc ),
85
+ datetime (2011 , 1 , 1 , 23 , 59 , 59 , tzinfo = timezone .utc ),
81
86
),
82
87
(
83
88
"Sat, 01 Jan 2011 21:00:00 +0200" ,
84
- datetime (2011 , 1 , 1 , 19 , 0 , 0 , tzinfo = pytz .utc ),
89
+ datetime (2011 , 1 , 1 , 19 , 0 , 0 , tzinfo = timezone .utc ),
85
90
),
86
91
(
87
92
"Sat, 01 Jan 2011 21:00:00 -0200" ,
88
- datetime (2011 , 1 , 1 , 23 , 0 , 0 , tzinfo = pytz .utc ),
93
+ datetime (2011 , 1 , 1 , 23 , 0 , 0 , tzinfo = timezone .utc ),
89
94
),
90
95
],
91
96
)
@@ -985,145 +990,145 @@ def test_schema(self):
985
990
# Full precision with explicit UTC.
986
991
"2013-01-01T12:30:00Z/P1Y2M3DT4H5M6S" ,
987
992
(
988
- datetime (2013 , 1 , 1 , 12 , 30 , 0 , tzinfo = pytz .utc ),
989
- datetime (2014 , 3 , 5 , 16 , 35 , 6 , tzinfo = pytz .utc ),
993
+ datetime (2013 , 1 , 1 , 12 , 30 , 0 , tzinfo = timezone .utc ),
994
+ datetime (2014 , 3 , 5 , 16 , 35 , 6 , tzinfo = timezone .utc ),
990
995
),
991
996
),
992
997
(
993
998
# Full precision with alternate UTC indication
994
999
"2013-01-01T12:30+00:00/P2D" ,
995
1000
(
996
- datetime (2013 , 1 , 1 , 12 , 30 , 0 , tzinfo = pytz .utc ),
997
- datetime (2013 , 1 , 3 , 12 , 30 , 0 , tzinfo = pytz .utc ),
1001
+ datetime (2013 , 1 , 1 , 12 , 30 , 0 , tzinfo = timezone .utc ),
1002
+ datetime (2013 , 1 , 3 , 12 , 30 , 0 , tzinfo = timezone .utc ),
998
1003
),
999
1004
),
1000
1005
(
1001
1006
# Implicit UTC with time
1002
1007
"2013-01-01T15:00/P1M" ,
1003
1008
(
1004
- datetime (2013 , 1 , 1 , 15 , 0 , 0 , tzinfo = pytz .utc ),
1005
- datetime (2013 , 1 , 31 , 15 , 0 , 0 , tzinfo = pytz .utc ),
1009
+ datetime (2013 , 1 , 1 , 15 , 0 , 0 , tzinfo = timezone .utc ),
1010
+ datetime (2013 , 1 , 31 , 15 , 0 , 0 , tzinfo = timezone .utc ),
1006
1011
),
1007
1012
),
1008
1013
(
1009
1014
# TZ conversion
1010
1015
"2013-01-01T17:00-05:00/P2W" ,
1011
1016
(
1012
- datetime (2013 , 1 , 1 , 22 , 0 , 0 , tzinfo = pytz .utc ),
1013
- datetime (2013 , 1 , 15 , 22 , 0 , 0 , tzinfo = pytz .utc ),
1017
+ datetime (2013 , 1 , 1 , 22 , 0 , 0 , tzinfo = timezone .utc ),
1018
+ datetime (2013 , 1 , 15 , 22 , 0 , 0 , tzinfo = timezone .utc ),
1014
1019
),
1015
1020
),
1016
1021
(
1017
1022
# Date upgrade to midnight-midnight period
1018
1023
"2013-01-01/P3D" ,
1019
1024
(
1020
- datetime (2013 , 1 , 1 , 0 , 0 , 0 , tzinfo = pytz .utc ),
1021
- datetime (2013 , 1 , 4 , 0 , 0 , 0 , 0 , tzinfo = pytz .utc ),
1025
+ datetime (2013 , 1 , 1 , 0 , 0 , 0 , tzinfo = timezone .utc ),
1026
+ datetime (2013 , 1 , 4 , 0 , 0 , 0 , 0 , tzinfo = timezone .utc ),
1022
1027
),
1023
1028
),
1024
1029
(
1025
1030
# Start/end with UTC
1026
1031
"2013-01-01T12:00:00Z/2013-02-01T12:00:00Z" ,
1027
1032
(
1028
- datetime (2013 , 1 , 1 , 12 , 0 , 0 , tzinfo = pytz .utc ),
1029
- datetime (2013 , 2 , 1 , 12 , 0 , 0 , tzinfo = pytz .utc ),
1033
+ datetime (2013 , 1 , 1 , 12 , 0 , 0 , tzinfo = timezone .utc ),
1034
+ datetime (2013 , 2 , 1 , 12 , 0 , 0 , tzinfo = timezone .utc ),
1030
1035
),
1031
1036
),
1032
1037
(
1033
1038
# Start/end with time upgrade
1034
1039
"2013-01-01/2013-06-30" ,
1035
1040
(
1036
- datetime (2013 , 1 , 1 , tzinfo = pytz .utc ),
1037
- datetime (2013 , 6 , 30 , tzinfo = pytz .utc ),
1041
+ datetime (2013 , 1 , 1 , tzinfo = timezone .utc ),
1042
+ datetime (2013 , 6 , 30 , tzinfo = timezone .utc ),
1038
1043
),
1039
1044
),
1040
1045
(
1041
1046
# Start/end with TZ conversion
1042
1047
"2013-02-17T12:00:00-07:00/2013-02-28T15:00:00-07:00" ,
1043
1048
(
1044
- datetime (2013 , 2 , 17 , 19 , 0 , 0 , tzinfo = pytz .utc ),
1045
- datetime (2013 , 2 , 28 , 22 , 0 , 0 , tzinfo = pytz .utc ),
1049
+ datetime (2013 , 2 , 17 , 19 , 0 , 0 , tzinfo = timezone .utc ),
1050
+ datetime (2013 , 2 , 28 , 22 , 0 , 0 , tzinfo = timezone .utc ),
1046
1051
),
1047
1052
),
1048
1053
( # Resolution expansion for single date(time)
1049
1054
# Second with UTC
1050
1055
"2013-01-01T12:30:45Z" ,
1051
1056
(
1052
- datetime (2013 , 1 , 1 , 12 , 30 , 45 , tzinfo = pytz .utc ),
1053
- datetime (2013 , 1 , 1 , 12 , 30 , 46 , tzinfo = pytz .utc ),
1057
+ datetime (2013 , 1 , 1 , 12 , 30 , 45 , tzinfo = timezone .utc ),
1058
+ datetime (2013 , 1 , 1 , 12 , 30 , 46 , tzinfo = timezone .utc ),
1054
1059
),
1055
1060
),
1056
1061
(
1057
1062
# Second with tz conversion
1058
1063
"2013-01-01T12:30:45+02:00" ,
1059
1064
(
1060
- datetime (2013 , 1 , 1 , 10 , 30 , 45 , tzinfo = pytz .utc ),
1061
- datetime (2013 , 1 , 1 , 10 , 30 , 46 , tzinfo = pytz .utc ),
1065
+ datetime (2013 , 1 , 1 , 10 , 30 , 45 , tzinfo = timezone .utc ),
1066
+ datetime (2013 , 1 , 1 , 10 , 30 , 46 , tzinfo = timezone .utc ),
1062
1067
),
1063
1068
),
1064
1069
(
1065
1070
# Second with implicit UTC
1066
1071
"2013-01-01T12:30:45" ,
1067
1072
(
1068
- datetime (2013 , 1 , 1 , 12 , 30 , 45 , tzinfo = pytz .utc ),
1069
- datetime (2013 , 1 , 1 , 12 , 30 , 46 , tzinfo = pytz .utc ),
1073
+ datetime (2013 , 1 , 1 , 12 , 30 , 45 , tzinfo = timezone .utc ),
1074
+ datetime (2013 , 1 , 1 , 12 , 30 , 46 , tzinfo = timezone .utc ),
1070
1075
),
1071
1076
),
1072
1077
(
1073
1078
# Minute with UTC
1074
1079
"2013-01-01T12:30+00:00" ,
1075
1080
(
1076
- datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = pytz .utc ),
1077
- datetime (2013 , 1 , 1 , 12 , 31 , tzinfo = pytz .utc ),
1081
+ datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = timezone .utc ),
1082
+ datetime (2013 , 1 , 1 , 12 , 31 , tzinfo = timezone .utc ),
1078
1083
),
1079
1084
),
1080
1085
(
1081
1086
# Minute with conversion
1082
1087
"2013-01-01T12:30+04:00" ,
1083
1088
(
1084
- datetime (2013 , 1 , 1 , 8 , 30 , tzinfo = pytz .utc ),
1085
- datetime (2013 , 1 , 1 , 8 , 31 , tzinfo = pytz .utc ),
1089
+ datetime (2013 , 1 , 1 , 8 , 30 , tzinfo = timezone .utc ),
1090
+ datetime (2013 , 1 , 1 , 8 , 31 , tzinfo = timezone .utc ),
1086
1091
),
1087
1092
),
1088
1093
(
1089
1094
# Minute with implicit UTC
1090
1095
"2013-01-01T12:30" ,
1091
1096
(
1092
- datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = pytz .utc ),
1093
- datetime (2013 , 1 , 1 , 12 , 31 , tzinfo = pytz .utc ),
1097
+ datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = timezone .utc ),
1098
+ datetime (2013 , 1 , 1 , 12 , 31 , tzinfo = timezone .utc ),
1094
1099
),
1095
1100
),
1096
1101
(
1097
1102
# Hour, explicit UTC
1098
1103
"2013-01-01T12Z" ,
1099
1104
(
1100
- datetime (2013 , 1 , 1 , 12 , tzinfo = pytz .utc ),
1101
- datetime (2013 , 1 , 1 , 13 , tzinfo = pytz .utc ),
1105
+ datetime (2013 , 1 , 1 , 12 , tzinfo = timezone .utc ),
1106
+ datetime (2013 , 1 , 1 , 13 , tzinfo = timezone .utc ),
1102
1107
),
1103
1108
),
1104
1109
(
1105
1110
# Hour with offset
1106
1111
"2013-01-01T12-07:00" ,
1107
1112
(
1108
- datetime (2013 , 1 , 1 , 19 , tzinfo = pytz .utc ),
1109
- datetime (2013 , 1 , 1 , 20 , tzinfo = pytz .utc ),
1113
+ datetime (2013 , 1 , 1 , 19 , tzinfo = timezone .utc ),
1114
+ datetime (2013 , 1 , 1 , 20 , tzinfo = timezone .utc ),
1110
1115
),
1111
1116
),
1112
1117
(
1113
1118
# Hour with implicit UTC
1114
1119
"2013-01-01T12" ,
1115
1120
(
1116
- datetime (2013 , 1 , 1 , 12 , tzinfo = pytz .utc ),
1117
- datetime (2013 , 1 , 1 , 13 , tzinfo = pytz .utc ),
1121
+ datetime (2013 , 1 , 1 , 12 , tzinfo = timezone .utc ),
1122
+ datetime (2013 , 1 , 1 , 13 , tzinfo = timezone .utc ),
1118
1123
),
1119
1124
),
1120
1125
(
1121
1126
# Interval with trailing zero fractional seconds should
1122
1127
# be accepted.
1123
1128
"2013-01-01T12:00:00.0/2013-01-01T12:30:00.000000" ,
1124
1129
(
1125
- datetime (2013 , 1 , 1 , 12 , tzinfo = pytz .utc ),
1126
- datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = pytz .utc ),
1130
+ datetime (2013 , 1 , 1 , 12 , tzinfo = timezone .utc ),
1131
+ datetime (2013 , 1 , 1 , 12 , 30 , tzinfo = timezone .utc ),
1127
1132
),
1128
1133
),
1129
1134
]
0 commit comments