Skip to content

Commit e484ecb

Browse files
authored
TST/CLN: use fixture for data path in all xml tests (#53790)
TST/CLN: use fixture path for all xml tests
1 parent 8b0a99d commit e484ecb

File tree

3 files changed

+47
-51
lines changed

3 files changed

+47
-51
lines changed

pandas/tests/io/xml/conftest.py

+5
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,8 @@ def kml_cta_rail_lines(xml_data_path):
2929
@pytest.fixture
3030
def xsl_flatten_doc(xml_data_path):
3131
return xml_data_path / "flatten_doc.xsl"
32+
33+
34+
@pytest.fixture
35+
def xsl_row_field_output(xml_data_path):
36+
return xml_data_path / "row_field_output.xsl"

pandas/tests/io/xml/test_to_xml.py

+28-36
Original file line numberDiff line numberDiff line change
@@ -171,9 +171,8 @@ def parser(request):
171171
# FILE OUTPUT
172172

173173

174-
def test_file_output_str_read(datapath, parser, from_file_expected):
175-
filename = datapath("io", "data", "xml", "books.xml")
176-
df_file = read_xml(filename, parser=parser)
174+
def test_file_output_str_read(xml_books, parser, from_file_expected):
175+
df_file = read_xml(xml_books, parser=parser)
177176

178177
with tm.ensure_clean("test.xml") as path:
179178
df_file.to_xml(path, parser=parser)
@@ -185,9 +184,8 @@ def test_file_output_str_read(datapath, parser, from_file_expected):
185184
assert output == from_file_expected
186185

187186

188-
def test_file_output_bytes_read(datapath, parser, from_file_expected):
189-
filename = datapath("io", "data", "xml", "books.xml")
190-
df_file = read_xml(filename, parser=parser)
187+
def test_file_output_bytes_read(xml_books, parser, from_file_expected):
188+
df_file = read_xml(xml_books, parser=parser)
191189

192190
with tm.ensure_clean("test.xml") as path:
193191
df_file.to_xml(path, parser=parser)
@@ -199,9 +197,8 @@ def test_file_output_bytes_read(datapath, parser, from_file_expected):
199197
assert output == from_file_expected
200198

201199

202-
def test_str_output(datapath, parser, from_file_expected):
203-
filename = datapath("io", "data", "xml", "books.xml")
204-
df_file = read_xml(filename, parser=parser)
200+
def test_str_output(xml_books, parser, from_file_expected):
201+
df_file = read_xml(xml_books, parser=parser)
205202

206203
output = df_file.to_xml(parser=parser)
207204
output = equalize_decl(output)
@@ -222,7 +219,7 @@ def test_wrong_file_path(parser, geom_df):
222219
# INDEX
223220

224221

225-
def test_index_false(datapath, parser):
222+
def test_index_false(xml_books, parser):
226223
expected = """\
227224
<?xml version='1.0' encoding='utf-8'?>
228225
<data>
@@ -249,8 +246,7 @@ def test_index_false(datapath, parser):
249246
</row>
250247
</data>"""
251248

252-
filename = datapath("io", "data", "xml", "books.xml")
253-
df_file = read_xml(filename, parser=parser)
249+
df_file = read_xml(xml_books, parser=parser)
254250

255251
with tm.ensure_clean("test.xml") as path:
256252
df_file.to_xml(path, index=False, parser=parser)
@@ -262,7 +258,7 @@ def test_index_false(datapath, parser):
262258
assert output == expected
263259

264260

265-
def test_index_false_rename_row_root(datapath, parser):
261+
def test_index_false_rename_row_root(xml_books, parser):
266262
expected = """\
267263
<?xml version='1.0' encoding='utf-8'?>
268264
<books>
@@ -289,8 +285,7 @@ def test_index_false_rename_row_root(datapath, parser):
289285
</book>
290286
</books>"""
291287

292-
filename = datapath("io", "data", "xml", "books.xml")
293-
df_file = read_xml(filename, parser=parser)
288+
df_file = read_xml(xml_books, parser=parser)
294289

295290
with tm.ensure_clean("test.xml") as path:
296291
df_file.to_xml(
@@ -831,9 +826,8 @@ def test_namespace_prefix_and_default(parser, geom_df):
831826
</data>"""
832827

833828

834-
def test_encoding_option_str(datapath, parser):
835-
filename = datapath("io", "data", "xml", "baby_names.xml")
836-
df_file = read_xml(filename, parser=parser, encoding="ISO-8859-1").head(5)
829+
def test_encoding_option_str(xml_baby_names, parser):
830+
df_file = read_xml(xml_baby_names, parser=parser, encoding="ISO-8859-1").head(5)
837831

838832
output = df_file.to_xml(encoding="ISO-8859-1", parser=parser)
839833

@@ -848,19 +842,17 @@ def test_encoding_option_str(datapath, parser):
848842

849843

850844
@td.skip_if_no("lxml")
851-
def test_correct_encoding_file(datapath):
852-
filename = datapath("io", "data", "xml", "baby_names.xml")
853-
df_file = read_xml(filename, encoding="ISO-8859-1", parser="lxml")
845+
def test_correct_encoding_file(xml_baby_names):
846+
df_file = read_xml(xml_baby_names, encoding="ISO-8859-1", parser="lxml")
854847

855848
with tm.ensure_clean("test.xml") as path:
856849
df_file.to_xml(path, index=False, encoding="ISO-8859-1", parser="lxml")
857850

858851

859852
@td.skip_if_no("lxml")
860853
@pytest.mark.parametrize("encoding", ["UTF-8", "UTF-16", "ISO-8859-1"])
861-
def test_wrong_encoding_option_lxml(datapath, parser, encoding):
862-
filename = datapath("io", "data", "xml", "baby_names.xml")
863-
df_file = read_xml(filename, encoding="ISO-8859-1", parser="lxml")
854+
def test_wrong_encoding_option_lxml(xml_baby_names, parser, encoding):
855+
df_file = read_xml(xml_baby_names, encoding="ISO-8859-1", parser="lxml")
864856

865857
with tm.ensure_clean("test.xml") as path:
866858
df_file.to_xml(path, index=False, encoding=encoding, parser=parser)
@@ -988,22 +980,22 @@ def test_unknown_parser(geom_df):
988980

989981

990982
@td.skip_if_no("lxml")
991-
def test_stylesheet_file_like(datapath, mode, geom_df):
992-
xsl = datapath("io", "data", "xml", "row_field_output.xsl")
993-
994-
with open(xsl, mode, encoding="utf-8" if mode == "r" else None) as f:
983+
def test_stylesheet_file_like(xsl_row_field_output, mode, geom_df):
984+
with open(
985+
xsl_row_field_output, mode, encoding="utf-8" if mode == "r" else None
986+
) as f:
995987
assert geom_df.to_xml(stylesheet=f) == xsl_expected
996988

997989

998990
@td.skip_if_no("lxml")
999-
def test_stylesheet_io(datapath, mode, geom_df):
1000-
xsl_path = datapath("io", "data", "xml", "row_field_output.xsl")
1001-
991+
def test_stylesheet_io(xsl_row_field_output, mode, geom_df):
1002992
# note: By default the bodies of untyped functions are not checked,
1003993
# consider using --check-untyped-defs
1004994
xsl_obj: BytesIO | StringIO # type: ignore[annotation-unchecked]
1005995

1006-
with open(xsl_path, mode, encoding="utf-8" if mode == "r" else None) as f:
996+
with open(
997+
xsl_row_field_output, mode, encoding="utf-8" if mode == "r" else None
998+
) as f:
1007999
if mode == "rb":
10081000
xsl_obj = BytesIO(f.read())
10091001
else:
@@ -1015,10 +1007,10 @@ def test_stylesheet_io(datapath, mode, geom_df):
10151007

10161008

10171009
@td.skip_if_no("lxml")
1018-
def test_stylesheet_buffered_reader(datapath, mode, geom_df):
1019-
xsl = datapath("io", "data", "xml", "row_field_output.xsl")
1020-
1021-
with open(xsl, mode, encoding="utf-8" if mode == "r" else None) as f:
1010+
def test_stylesheet_buffered_reader(xsl_row_field_output, mode, geom_df):
1011+
with open(
1012+
xsl_row_field_output, mode, encoding="utf-8" if mode == "r" else None
1013+
) as f:
10221014
xsl_obj = f.read()
10231015

10241016
output = geom_df.to_xml(stylesheet=xsl_obj)

pandas/tests/io/xml/test_xml_dtypes.py

+14-15
Original file line numberDiff line numberDiff line change
@@ -194,12 +194,13 @@ def test_dtype_float(parser):
194194
tm.assert_frame_equal(df_iter, df_expected)
195195

196196

197-
def test_wrong_dtype(datapath, parser, iterparse):
198-
filename = datapath("io", "data", "xml", "books.xml")
197+
def test_wrong_dtype(xml_books, parser, iterparse):
199198
with pytest.raises(
200199
ValueError, match=('Unable to parse string "Everyday Italian" at position 0')
201200
):
202-
read_xml(filename, dtype={"title": "Int64"}, parser=parser, iterparse=iterparse)
201+
read_xml(
202+
xml_books, dtype={"title": "Int64"}, parser=parser, iterparse=iterparse
203+
)
203204

204205

205206
def test_both_dtype_converters(parser):
@@ -279,25 +280,24 @@ def test_converters_date(parser):
279280
tm.assert_frame_equal(df_iter, df_expected)
280281

281282

282-
def test_wrong_converters_type(datapath, parser, iterparse):
283-
filename = datapath("io", "data", "xml", "books.xml")
283+
def test_wrong_converters_type(xml_books, parser, iterparse):
284284
with pytest.raises(TypeError, match=("Type converters must be a dict or subclass")):
285-
read_xml(filename, converters={"year", str}, parser=parser, iterparse=iterparse)
285+
read_xml(
286+
xml_books, converters={"year", str}, parser=parser, iterparse=iterparse
287+
)
286288

287289

288-
def test_callable_func_converters(datapath, parser, iterparse):
289-
filename = datapath("io", "data", "xml", "books.xml")
290+
def test_callable_func_converters(xml_books, parser, iterparse):
290291
with pytest.raises(TypeError, match=("'float' object is not callable")):
291292
read_xml(
292-
filename, converters={"year": float()}, parser=parser, iterparse=iterparse
293+
xml_books, converters={"year": float()}, parser=parser, iterparse=iterparse
293294
)
294295

295296

296-
def test_callable_str_converters(datapath, parser, iterparse):
297-
filename = datapath("io", "data", "xml", "books.xml")
297+
def test_callable_str_converters(xml_books, parser, iterparse):
298298
with pytest.raises(TypeError, match=("'str' object is not callable")):
299299
read_xml(
300-
filename, converters={"year": "float"}, parser=parser, iterparse=iterparse
300+
xml_books, converters={"year": "float"}, parser=parser, iterparse=iterparse
301301
)
302302

303303

@@ -471,9 +471,8 @@ def test_day_first_parse_dates(parser):
471471
tm.assert_frame_equal(df_iter, df_expected)
472472

473473

474-
def test_wrong_parse_dates_type(datapath, parser, iterparse):
475-
filename = datapath("io", "data", "xml", "books.xml")
474+
def test_wrong_parse_dates_type(xml_books, parser, iterparse):
476475
with pytest.raises(
477476
TypeError, match=("Only booleans, lists, and dictionaries are accepted")
478477
):
479-
read_xml(filename, parse_dates={"date"}, parser=parser, iterparse=iterparse)
478+
read_xml(xml_books, parse_dates={"date"}, parser=parser, iterparse=iterparse)

0 commit comments

Comments
 (0)