@@ -144,6 +144,28 @@ def test_parsers_month_freq(date_str, expected):
144
144
("30-12-2011" , "%d-%m-%Y" ),
145
145
("2011-12-30 00:00:00" , "%Y-%m-%d %H:%M:%S" ),
146
146
("2011-12-30T00:00:00" , "%Y-%m-%dT%H:%M:%S" ),
147
+ ("2011-12-30T00:00:00UTC" , "%Y-%m-%dT%H:%M:%S%Z" ),
148
+ ("2011-12-30T00:00:00Z" , "%Y-%m-%dT%H:%M:%S%z" ),
149
+ ("2011-12-30T00:00:00+9" , "%Y-%m-%dT%H:%M:%S%z" ),
150
+ ("2011-12-30T00:00:00+09" , "%Y-%m-%dT%H:%M:%S%z" ),
151
+ ("2011-12-30T00:00:00+090" , None ),
152
+ ("2011-12-30T00:00:00+0900" , "%Y-%m-%dT%H:%M:%S%z" ),
153
+ ("2011-12-30T00:00:00-0900" , "%Y-%m-%dT%H:%M:%S%z" ),
154
+ ("2011-12-30T00:00:00+09:00" , "%Y-%m-%dT%H:%M:%S%z" ),
155
+ ("2011-12-30T00:00:00+09:000" , "%Y-%m-%dT%H:%M:%S%z" ),
156
+ ("2011-12-30T00:00:00+9:0" , "%Y-%m-%dT%H:%M:%S%z" ),
157
+ ("2011-12-30T00:00:00+09:" , None ),
158
+ ("2011-12-30T00:00:00.000000UTC" , "%Y-%m-%dT%H:%M:%S.%f%Z" ),
159
+ ("2011-12-30T00:00:00.000000Z" , "%Y-%m-%dT%H:%M:%S.%f%z" ),
160
+ ("2011-12-30T00:00:00.000000+9" , "%Y-%m-%dT%H:%M:%S.%f%z" ),
161
+ ("2011-12-30T00:00:00.000000+09" , "%Y-%m-%dT%H:%M:%S.%f%z" ),
162
+ ("2011-12-30T00:00:00.000000+090" , None ),
163
+ ("2011-12-30T00:00:00.000000+0900" , "%Y-%m-%dT%H:%M:%S.%f%z" ),
164
+ ("2011-12-30T00:00:00.000000-0900" , "%Y-%m-%dT%H:%M:%S.%f%z" ),
165
+ ("2011-12-30T00:00:00.000000+09:00" , "%Y-%m-%dT%H:%M:%S.%f%z" ),
166
+ ("2011-12-30T00:00:00.000000+09:000" , "%Y-%m-%dT%H:%M:%S.%f%z" ),
167
+ ("2011-12-30T00:00:00.000000+9:0" , "%Y-%m-%dT%H:%M:%S.%f%z" ),
168
+ ("2011-12-30T00:00:00.000000+09:" , None ),
147
169
("2011-12-30 00:00:00.000000" , "%Y-%m-%d %H:%M:%S.%f" ),
148
170
],
149
171
)
@@ -226,3 +248,31 @@ def test_parse_time_string_check_instance_type_raise_exception():
226
248
result = parse_time_string ("2019" )
227
249
expected = (datetime (2019 , 1 , 1 ), "year" )
228
250
assert result == expected
251
+
252
+
253
+ @pytest .mark .parametrize (
254
+ "fmt,expected" ,
255
+ [
256
+ ("%Y %m %d %H:%M:%S" , True ),
257
+ ("%Y/%m/%d %H:%M:%S" , True ),
258
+ (r"%Y\%m\%d %H:%M:%S" , True ),
259
+ ("%Y-%m-%d %H:%M:%S" , True ),
260
+ ("%Y.%m.%d %H:%M:%S" , True ),
261
+ ("%Y%m%d %H:%M:%S" , True ),
262
+ ("%Y-%m-%dT%H:%M:%S" , True ),
263
+ ("%Y-%m-%dT%H:%M:%S%z" , True ),
264
+ ("%Y-%m-%dT%H:%M:%S%Z" , True ),
265
+ ("%Y-%m-%dT%H:%M:%S.%f" , True ),
266
+ ("%Y-%m-%dT%H:%M:%S.%f%z" , True ),
267
+ ("%Y-%m-%dT%H:%M:%S.%f%Z" , True ),
268
+ ("%Y%m%d" , False ),
269
+ ("%Y%m" , False ),
270
+ ("%Y" , False ),
271
+ ("%Y-%m-%d" , True ),
272
+ ("%Y-%m" , True ),
273
+ ],
274
+ )
275
+ def test_is_iso_format (fmt , expected ):
276
+ # see gh-41047
277
+ result = parsing .format_is_iso (fmt )
278
+ assert result == expected
0 commit comments