@@ -370,7 +370,11 @@ def test_date_col_as_index_col(all_parsers):
370370 tm .assert_frame_equal (result , expected )
371371
372372
373- def test_multiple_date_cols_int_cast (all_parsers ):
373+ @pytest .mark .parametrize (
374+ "date_parser, warning" ,
375+ ([conv .parse_date_time , FutureWarning ], [pd .to_datetime , None ]),
376+ )
377+ def test_multiple_date_cols_int_cast (all_parsers , date_parser , warning ):
374378 data = (
375379 "KORD,19990127, 19:00:00, 18:56:00, 0.8100\n "
376380 "KORD,19990127, 20:00:00, 19:56:00, 0.0100\n "
@@ -382,13 +386,15 @@ def test_multiple_date_cols_int_cast(all_parsers):
382386 parse_dates = {"actual" : [1 , 2 ], "nominal" : [1 , 3 ]}
383387 parser = all_parsers
384388
385- result = parser .read_csv (
386- StringIO (data ),
387- header = None ,
388- date_parser = conv .parse_date_time ,
389- parse_dates = parse_dates ,
390- prefix = "X" ,
391- )
389+ with tm .assert_produces_warning (warning , check_stacklevel = False ):
390+ result = parser .read_csv (
391+ StringIO (data ),
392+ header = None ,
393+ date_parser = date_parser ,
394+ parse_dates = parse_dates ,
395+ prefix = "X" ,
396+ )
397+
392398 expected = DataFrame (
393399 [
394400 [datetime (1999 , 1 , 27 , 19 , 0 ), datetime (1999 , 1 , 27 , 18 , 56 ), "KORD" , 0.81 ],
@@ -808,7 +814,9 @@ def test_parse_dates_custom_euro_format(all_parsers, kwargs):
808814 tm .assert_frame_equal (df , expected )
809815 else :
810816 msg = "got an unexpected keyword argument 'day_first'"
811- with pytest .raises (TypeError , match = msg ):
817+ with pytest .raises (TypeError , match = msg ), tm .assert_produces_warning (
818+ FutureWarning
819+ ):
812820 parser .read_csv (
813821 StringIO (data ),
814822 names = ["time" , "Q" , "NTU" ],
@@ -1166,20 +1174,25 @@ def test_parse_dates_no_convert_thousands(all_parsers, data, kwargs, expected):
11661174 tm .assert_frame_equal (result , expected )
11671175
11681176
1169- def test_parse_date_time_multi_level_column_name (all_parsers ):
1177+ @pytest .mark .parametrize (
1178+ "date_parser, warning" ,
1179+ ([conv .parse_date_time , FutureWarning ], [pd .to_datetime , None ]),
1180+ )
1181+ def test_parse_date_time_multi_level_column_name (all_parsers , date_parser , warning ):
11701182 data = """\
11711183 D,T,A,B
11721184date, time,a,b
117311852001-01-05, 09:00:00, 0.0, 10.
117411862001-01-06, 00:00:00, 1.0, 11.
11751187"""
11761188 parser = all_parsers
1177- result = parser .read_csv (
1178- StringIO (data ),
1179- header = [0 , 1 ],
1180- parse_dates = {"date_time" : [0 , 1 ]},
1181- date_parser = conv .parse_date_time ,
1182- )
1189+ with tm .assert_produces_warning (warning , check_stacklevel = False ):
1190+ result = parser .read_csv (
1191+ StringIO (data ),
1192+ header = [0 , 1 ],
1193+ parse_dates = {"date_time" : [0 , 1 ]},
1194+ date_parser = date_parser ,
1195+ )
11831196
11841197 expected_data = [
11851198 [datetime (2001 , 1 , 5 , 9 , 0 , 0 ), 0.0 , 10.0 ],
@@ -1189,6 +1202,10 @@ def test_parse_date_time_multi_level_column_name(all_parsers):
11891202 tm .assert_frame_equal (result , expected )
11901203
11911204
1205+ @pytest .mark .parametrize (
1206+ "date_parser, warning" ,
1207+ ([conv .parse_date_time , FutureWarning ], [pd .to_datetime , None ]),
1208+ )
11921209@pytest .mark .parametrize (
11931210 "data,kwargs,expected" ,
11941211 [
@@ -1261,9 +1278,10 @@ def test_parse_date_time_multi_level_column_name(all_parsers):
12611278 ),
12621279 ],
12631280)
1264- def test_parse_date_time (all_parsers , data , kwargs , expected ):
1281+ def test_parse_date_time (all_parsers , data , kwargs , expected , date_parser , warning ):
12651282 parser = all_parsers
1266- result = parser .read_csv (StringIO (data ), date_parser = conv .parse_date_time , ** kwargs )
1283+ with tm .assert_produces_warning (warning , check_stacklevel = False ):
1284+ result = parser .read_csv (StringIO (data ), date_parser = date_parser , ** kwargs )
12671285
12681286 # Python can sometimes be flaky about how
12691287 # the aggregated columns are entered, so
@@ -1272,15 +1290,20 @@ def test_parse_date_time(all_parsers, data, kwargs, expected):
12721290 tm .assert_frame_equal (result , expected )
12731291
12741292
1275- def test_parse_date_fields (all_parsers ):
1293+ @pytest .mark .parametrize (
1294+ "date_parser, warning" ,
1295+ ([conv .parse_date_fields , FutureWarning ], [pd .to_datetime , None ]),
1296+ )
1297+ def test_parse_date_fields (all_parsers , date_parser , warning ):
12761298 parser = all_parsers
12771299 data = "year,month,day,a\n 2001,01,10,10.\n 2001,02,1,11."
1278- result = parser .read_csv (
1279- StringIO (data ),
1280- header = 0 ,
1281- parse_dates = {"ymd" : [0 , 1 , 2 ]},
1282- date_parser = conv .parse_date_fields ,
1283- )
1300+ with tm .assert_produces_warning (warning , check_stacklevel = False ):
1301+ result = parser .read_csv (
1302+ StringIO (data ),
1303+ header = 0 ,
1304+ parse_dates = {"ymd" : [0 , 1 , 2 ]},
1305+ date_parser = date_parser ,
1306+ )
12841307
12851308 expected = DataFrame (
12861309 [[datetime (2001 , 1 , 10 ), 10.0 ], [datetime (2001 , 2 , 1 ), 11.0 ]],
@@ -1289,19 +1312,27 @@ def test_parse_date_fields(all_parsers):
12891312 tm .assert_frame_equal (result , expected )
12901313
12911314
1292- def test_parse_date_all_fields (all_parsers ):
1315+ @pytest .mark .parametrize (
1316+ "date_parser, warning" ,
1317+ (
1318+ [conv .parse_all_fields , FutureWarning ],
1319+ [lambda x : pd .to_datetime (x , format = "%Y %m %d %H %M %S" ), None ],
1320+ ),
1321+ )
1322+ def test_parse_date_all_fields (all_parsers , date_parser , warning ):
12931323 parser = all_parsers
12941324 data = """\
12951325 year,month,day,hour,minute,second,a,b
129613262001,01,05,10,00,0,0.0,10.
129713272001,01,5,10,0,00,1.,11.
12981328"""
1299- result = parser .read_csv (
1300- StringIO (data ),
1301- header = 0 ,
1302- date_parser = conv .parse_all_fields ,
1303- parse_dates = {"ymdHMS" : [0 , 1 , 2 , 3 , 4 , 5 ]},
1304- )
1329+ with tm .assert_produces_warning (warning , check_stacklevel = False ):
1330+ result = parser .read_csv (
1331+ StringIO (data ),
1332+ header = 0 ,
1333+ date_parser = date_parser ,
1334+ parse_dates = {"ymdHMS" : [0 , 1 , 2 , 3 , 4 , 5 ]},
1335+ )
13051336 expected = DataFrame (
13061337 [
13071338 [datetime (2001 , 1 , 5 , 10 , 0 , 0 ), 0.0 , 10.0 ],
@@ -1312,19 +1343,27 @@ def test_parse_date_all_fields(all_parsers):
13121343 tm .assert_frame_equal (result , expected )
13131344
13141345
1315- def test_datetime_fractional_seconds (all_parsers ):
1346+ @pytest .mark .parametrize (
1347+ "date_parser, warning" ,
1348+ (
1349+ [conv .parse_all_fields , FutureWarning ],
1350+ [lambda x : pd .to_datetime (x , format = "%Y %m %d %H %M %S.%f" ), None ],
1351+ ),
1352+ )
1353+ def test_datetime_fractional_seconds (all_parsers , date_parser , warning ):
13161354 parser = all_parsers
13171355 data = """\
13181356 year,month,day,hour,minute,second,a,b
131913572001,01,05,10,00,0.123456,0.0,10.
132013582001,01,5,10,0,0.500000,1.,11.
13211359"""
1322- result = parser .read_csv (
1323- StringIO (data ),
1324- header = 0 ,
1325- date_parser = conv .parse_all_fields ,
1326- parse_dates = {"ymdHMS" : [0 , 1 , 2 , 3 , 4 , 5 ]},
1327- )
1360+ with tm .assert_produces_warning (warning , check_stacklevel = False ):
1361+ result = parser .read_csv (
1362+ StringIO (data ),
1363+ header = 0 ,
1364+ date_parser = date_parser ,
1365+ parse_dates = {"ymdHMS" : [0 , 1 , 2 , 3 , 4 , 5 ]},
1366+ )
13281367 expected = DataFrame (
13291368 [
13301369 [datetime (2001 , 1 , 5 , 10 , 0 , 0 , microsecond = 123456 ), 0.0 , 10.0 ],
@@ -1339,12 +1378,13 @@ def test_generic(all_parsers):
13391378 parser = all_parsers
13401379 data = "year,month,day,a\n 2001,01,10,10.\n 2001,02,1,11."
13411380
1342- result = parser .read_csv (
1343- StringIO (data ),
1344- header = 0 ,
1345- parse_dates = {"ym" : [0 , 1 ]},
1346- date_parser = lambda y , m : date (year = int (y ), month = int (m ), day = 1 ),
1347- )
1381+ with tm .assert_produces_warning (FutureWarning , check_stacklevel = False ):
1382+ result = parser .read_csv (
1383+ StringIO (data ),
1384+ header = 0 ,
1385+ parse_dates = {"ym" : [0 , 1 ]},
1386+ date_parser = lambda y , m : date (year = int (y ), month = int (m ), day = 1 ),
1387+ )
13481388 expected = DataFrame (
13491389 [[date (2001 , 1 , 1 ), 10 , 10.0 ], [date (2001 , 2 , 1 ), 1 , 11.0 ]],
13501390 columns = ["ym" , "day" , "a" ],
0 commit comments