@@ -452,7 +452,7 @@ def test_file_buffered_reader_no_xml_declaration(xml_books, parser, mode):
452
452
def test_string_charset (parser ):
453
453
txt = "<中文標籤><row><c1>1</c1><c2>2</c2></row></中文標籤>"
454
454
455
- df_str = read_xml (txt , parser = parser )
455
+ df_str = read_xml (StringIO ( txt ) , parser = parser )
456
456
457
457
df_expected = DataFrame ({"c1" : 1 , "c2" : 2 }, index = [0 ])
458
458
@@ -510,34 +510,48 @@ def test_empty_string_lxml(val):
510
510
]
511
511
)
512
512
with pytest .raises (XMLSyntaxError , match = msg ):
513
- read_xml (val , parser = "lxml" )
513
+ if isinstance (val , str ):
514
+ read_xml (StringIO (val ), parser = "lxml" )
515
+ else :
516
+ read_xml (BytesIO (val ), parser = "lxml" )
514
517
515
518
516
519
@pytest .mark .parametrize ("val" , ["" , b"" ])
517
520
def test_empty_string_etree (val ):
518
521
with pytest .raises (ParseError , match = "no element found" ):
519
- read_xml (val , parser = "etree" )
522
+ if isinstance (val , str ):
523
+ read_xml (StringIO (val ), parser = "etree" )
524
+ else :
525
+ read_xml (BytesIO (val ), parser = "etree" )
520
526
521
527
522
528
@td .skip_if_no ("lxml" )
523
529
def test_wrong_file_path_lxml ():
524
- from lxml .etree import XMLSyntaxError
525
-
530
+ msg = (
531
+ "Passing literal xml to 'read_xml' is deprecated and "
532
+ "will be removed in a future version. To read from a "
533
+ "literal string, wrap it in a 'StringIO' object."
534
+ )
526
535
filename = os .path .join ("data" , "html" , "books.xml" )
527
536
528
537
with pytest .raises (
529
- XMLSyntaxError ,
530
- match = ( "Start tag expected, '<' not found" ) ,
538
+ FutureWarning ,
539
+ match = msg ,
531
540
):
532
541
read_xml (filename , parser = "lxml" )
533
542
534
543
535
544
def test_wrong_file_path_etree ():
545
+ msg = (
546
+ "Passing literal xml to 'read_xml' is deprecated and "
547
+ "will be removed in a future version. To read from a "
548
+ "literal string, wrap it in a 'StringIO' object."
549
+ )
536
550
filename = os .path .join ("data" , "html" , "books.xml" )
537
551
538
552
with pytest .raises (
539
- ParseError ,
540
- match = ( "not well-formed" ) ,
553
+ FutureWarning ,
554
+ match = msg ,
541
555
):
542
556
read_xml (filename , parser = "etree" )
543
557
@@ -1223,8 +1237,8 @@ def test_style_charset():
1223
1237
1224
1238
</xsl:stylesheet>"""
1225
1239
1226
- df_orig = read_xml (xml )
1227
- df_style = read_xml (xml , stylesheet = xsl )
1240
+ df_orig = read_xml (StringIO ( xml ) )
1241
+ df_style = read_xml (StringIO ( xml ) , stylesheet = xsl )
1228
1242
1229
1243
tm .assert_frame_equal (df_orig , df_style )
1230
1244
0 commit comments