@@ -90,7 +90,6 @@ def _transfer_marks(engine, read_ext):
90
90
91
91
92
92
@pytest .fixture (
93
- autouse = True ,
94
93
params = [
95
94
_transfer_marks (eng , ext )
96
95
for eng in engine_params
@@ -172,7 +171,7 @@ def test_usecols_int(self, read_ext, df_ref):
172
171
)
173
172
174
173
def test_usecols_list (self , request , read_ext , df_ref ):
175
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
174
+ if read_ext == ".xlsb " :
176
175
request .node .add_marker (
177
176
pytest .mark .xfail (
178
177
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -196,7 +195,7 @@ def test_usecols_list(self, request, read_ext, df_ref):
196
195
tm .assert_frame_equal (df2 , df_ref , check_names = False )
197
196
198
197
def test_usecols_str (self , request , read_ext , df_ref ):
199
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
198
+ if read_ext == ".xlsb " :
200
199
request .node .add_marker (
201
200
pytest .mark .xfail (
202
201
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -254,7 +253,7 @@ def test_usecols_str(self, request, read_ext, df_ref):
254
253
def test_usecols_diff_positional_int_columns_order (
255
254
self , request , read_ext , usecols , df_ref
256
255
):
257
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
256
+ if read_ext == ".xlsb " :
258
257
request .node .add_marker (
259
258
pytest .mark .xfail (
260
259
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -276,7 +275,7 @@ def test_usecols_diff_positional_str_columns_order(self, read_ext, usecols, df_r
276
275
tm .assert_frame_equal (result , expected , check_names = False )
277
276
278
277
def test_read_excel_without_slicing (self , request , read_ext , df_ref ):
279
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
278
+ if read_ext == ".xlsb " :
280
279
request .node .add_marker (
281
280
pytest .mark .xfail (
282
281
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -288,7 +287,7 @@ def test_read_excel_without_slicing(self, request, read_ext, df_ref):
288
287
tm .assert_frame_equal (result , expected , check_names = False )
289
288
290
289
def test_usecols_excel_range_str (self , request , read_ext , df_ref ):
291
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
290
+ if read_ext == ".xlsb " :
292
291
request .node .add_marker (
293
292
pytest .mark .xfail (
294
293
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -368,7 +367,7 @@ def test_excel_stop_iterator(self, read_ext):
368
367
tm .assert_frame_equal (parsed , expected )
369
368
370
369
def test_excel_cell_error_na (self , request , read_ext ):
371
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
370
+ if read_ext == ".xlsb " :
372
371
request .node .add_marker (
373
372
pytest .mark .xfail (
374
373
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -380,7 +379,7 @@ def test_excel_cell_error_na(self, request, read_ext):
380
379
tm .assert_frame_equal (parsed , expected )
381
380
382
381
def test_excel_table (self , request , read_ext , df_ref ):
383
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
382
+ if read_ext == ".xlsb " :
384
383
request .node .add_marker (
385
384
pytest .mark .xfail (
386
385
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -401,7 +400,7 @@ def test_excel_table(self, request, read_ext, df_ref):
401
400
tm .assert_frame_equal (df3 , df1 .iloc [:- 1 ])
402
401
403
402
def test_reader_special_dtypes (self , request , read_ext ):
404
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
403
+ if read_ext == ".xlsb " :
405
404
request .node .add_marker (
406
405
pytest .mark .xfail (
407
406
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -610,9 +609,8 @@ def test_reader_spaces(self, read_ext):
610
609
("gh-36122" , DataFrame (columns = ["got 2nd sa" ])),
611
610
],
612
611
)
613
- def test_read_excel_ods_nested_xml (self , read_ext , basename , expected ):
612
+ def test_read_excel_ods_nested_xml (self , engine , read_ext , basename , expected ):
614
613
# see gh-35802
615
- engine = pd .read_excel .keywords ["engine" ]
616
614
if engine != "odf" :
617
615
pytest .skip (f"Skipped for engine: { engine } " )
618
616
@@ -665,9 +663,9 @@ def test_read_excel_blank_with_header(self, read_ext):
665
663
actual = pd .read_excel ("blank_with_header" + read_ext , sheet_name = "Sheet1" )
666
664
tm .assert_frame_equal (actual , expected )
667
665
668
- def test_date_conversion_overflow (self , request , read_ext ):
666
+ def test_date_conversion_overflow (self , request , engine , read_ext ):
669
667
# GH 10001 : pandas.ExcelFile ignore parse_dates=False
670
- if pd . read_excel . keywords [ " engine" ] == "pyxlsb" :
668
+ if engine == "pyxlsb" :
671
669
request .node .add_marker (
672
670
pytest .mark .xfail (
673
671
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -683,12 +681,12 @@ def test_date_conversion_overflow(self, request, read_ext):
683
681
columns = ["DateColWithBigInt" , "StringCol" ],
684
682
)
685
683
686
- if pd . read_excel . keywords [ " engine" ] == "openpyxl" :
684
+ if engine == "openpyxl" :
687
685
request .node .add_marker (
688
686
pytest .mark .xfail (reason = "Maybe not supported by openpyxl" )
689
687
)
690
688
691
- if pd . read_excel . keywords [ " engine" ] is None and read_ext in (".xlsx" , ".xlsm" ):
689
+ if engine is None and read_ext in (".xlsx" , ".xlsm" ):
692
690
# GH 35029
693
691
request .node .add_marker (
694
692
pytest .mark .xfail (reason = "Defaults to openpyxl, maybe not supported" )
@@ -698,7 +696,7 @@ def test_date_conversion_overflow(self, request, read_ext):
698
696
tm .assert_frame_equal (result , expected )
699
697
700
698
def test_sheet_name (self , request , read_ext , df_ref ):
701
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
699
+ if read_ext == ".xlsb " :
702
700
request .node .add_marker (
703
701
pytest .mark .xfail (
704
702
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -863,8 +861,8 @@ def test_close_from_py_localpath(self, read_ext):
863
861
# should not throw an exception because the passed file was closed
864
862
f .read ()
865
863
866
- def test_reader_seconds (self , request , read_ext ):
867
- if pd . read_excel . keywords [ " engine" ] == "pyxlsb" :
864
+ def test_reader_seconds (self , request , engine , read_ext ):
865
+ if engine == "pyxlsb" :
868
866
request .node .add_marker (
869
867
pytest .mark .xfail (
870
868
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -898,7 +896,7 @@ def test_reader_seconds(self, request, read_ext):
898
896
899
897
def test_read_excel_multiindex (self , request , read_ext ):
900
898
# see gh-4679
901
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
899
+ if read_ext == ".xlsb " :
902
900
request .node .add_marker (
903
901
pytest .mark .xfail (
904
902
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -993,7 +991,7 @@ def test_read_excel_multiindex_blank_after_name(
993
991
self , request , read_ext , sheet_name , idx_lvl2
994
992
):
995
993
# GH34673
996
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
994
+ if read_ext == ".xlsb " :
997
995
request .node .add_marker (
998
996
pytest .mark .xfail (
999
997
reason = "Sheets containing datetimes not supported by pyxlsb (GH4679"
@@ -1115,7 +1113,7 @@ def test_read_excel_bool_header_arg(self, read_ext):
1115
1113
1116
1114
def test_read_excel_skiprows (self , request , read_ext ):
1117
1115
# GH 4903
1118
- if pd . read_excel . keywords [ "engine" ] == "pyxlsb " :
1116
+ if read_ext == ".xlsb " :
1119
1117
request .node .add_marker (
1120
1118
pytest .mark .xfail (
1121
1119
reason = "Sheets containing datetimes not supported by pyxlsb"
@@ -1261,11 +1259,11 @@ def test_trailing_blanks(self, read_ext):
1261
1259
result = pd .read_excel (file_name )
1262
1260
assert result .shape == (3 , 3 )
1263
1261
1264
- def test_ignore_chartsheets_by_str (self , request , read_ext ):
1262
+ def test_ignore_chartsheets_by_str (self , request , engine , read_ext ):
1265
1263
# GH 41448
1266
- if pd . read_excel . keywords [ " engine" ] == "odf" :
1264
+ if engine == "odf" :
1267
1265
pytest .skip ("chartsheets do not exist in the ODF format" )
1268
- if pd . read_excel . keywords [ " engine" ] == "pyxlsb" :
1266
+ if engine == "pyxlsb" :
1269
1267
request .node .add_marker (
1270
1268
pytest .mark .xfail (
1271
1269
reason = "pyxlsb can't distinguish chartsheets from worksheets"
@@ -1274,11 +1272,11 @@ def test_ignore_chartsheets_by_str(self, request, read_ext):
1274
1272
with pytest .raises (ValueError , match = "Worksheet named 'Chart1' not found" ):
1275
1273
pd .read_excel ("chartsheet" + read_ext , sheet_name = "Chart1" )
1276
1274
1277
- def test_ignore_chartsheets_by_int (self , request , read_ext ):
1275
+ def test_ignore_chartsheets_by_int (self , request , engine , read_ext ):
1278
1276
# GH 41448
1279
- if pd . read_excel . keywords [ " engine" ] == "odf" :
1277
+ if engine == "odf" :
1280
1278
pytest .skip ("chartsheets do not exist in the ODF format" )
1281
- if pd . read_excel . keywords [ " engine" ] == "pyxlsb" :
1279
+ if engine == "pyxlsb" :
1282
1280
request .node .add_marker (
1283
1281
pytest .mark .xfail (
1284
1282
reason = "pyxlsb can't distinguish chartsheets from worksheets"
@@ -1395,8 +1393,6 @@ def test_excel_passes_na_filter(self, read_ext, na_filter):
1395
1393
tm .assert_frame_equal (parsed , expected )
1396
1394
1397
1395
def test_excel_table_sheet_by_index (self , request , read_ext , df_ref ):
1398
- # For some reason pd.read_excel has no attribute 'keywords' here.
1399
- # Skipping based on read_ext instead.
1400
1396
if read_ext == ".xlsb" :
1401
1397
request .node .add_marker (
1402
1398
pytest .mark .xfail (
@@ -1426,8 +1422,6 @@ def test_excel_table_sheet_by_index(self, request, read_ext, df_ref):
1426
1422
tm .assert_frame_equal (df3 , df1 .iloc [:- 1 ])
1427
1423
1428
1424
def test_sheet_name (self , request , read_ext , df_ref ):
1429
- # For some reason pd.read_excel has no attribute 'keywords' here.
1430
- # Skipping based on read_ext instead.
1431
1425
if read_ext == ".xlsb" :
1432
1426
request .node .add_marker (
1433
1427
pytest .mark .xfail (
@@ -1505,7 +1499,7 @@ def test_excel_read_binary_via_read_excel(self, read_ext, engine):
1505
1499
xlrd_version is not None and xlrd_version >= Version ("2" ),
1506
1500
reason = "xlrd no longer supports xlsx" ,
1507
1501
)
1508
- def test_excel_high_surrogate (self , engine ):
1502
+ def test_excel_high_surrogate (self ):
1509
1503
# GH 23809
1510
1504
expected = DataFrame (["\udc88 " ], columns = ["Column1" ])
1511
1505
@@ -1514,7 +1508,7 @@ def test_excel_high_surrogate(self, engine):
1514
1508
tm .assert_frame_equal (expected , actual )
1515
1509
1516
1510
@pytest .mark .parametrize ("filename" , ["df_empty.xlsx" , "df_equals.xlsx" ])
1517
- def test_header_with_index_col (self , engine , filename ):
1511
+ def test_header_with_index_col (self , filename ):
1518
1512
# GH 33476
1519
1513
idx = Index (["Z" ], name = "I2" )
1520
1514
cols = MultiIndex .from_tuples ([("A" , "B" ), ("A" , "B.1" )], names = ["I11" , "I12" ])
@@ -1566,7 +1560,7 @@ def test_ignore_chartsheets(self, request, engine, read_ext):
1566
1560
with pd .ExcelFile ("chartsheet" + read_ext ) as excel :
1567
1561
assert excel .sheet_names == ["Sheet1" ]
1568
1562
1569
- def test_corrupt_files_closed (self , request , engine , read_ext ):
1563
+ def test_corrupt_files_closed (self , engine , read_ext ):
1570
1564
# GH41778
1571
1565
errors = (BadZipFile ,)
1572
1566
if engine is None :
0 commit comments