13
13
import operator
14
14
import os
15
15
import pickle
16
+ import pyexpat
16
17
import sys
17
18
import textwrap
18
19
import types
102
103
<document>&entity;</document>
103
104
"""
104
105
106
+
107
+ fails_with_expat_2_6_0 = (unittest .expectedFailure
108
+ if pyexpat .version_info >= (2 , 6 , 0 ) else
109
+ lambda test : test )
110
+
111
+
105
112
def checkwarnings (* filters , quiet = False ):
106
113
def decorator (test ):
107
114
def newtest (* args , ** kwargs ):
@@ -1391,28 +1398,37 @@ def assert_event_tags(self, parser, expected, max_events=None):
1391
1398
self .assertEqual ([(action , elem .tag ) for action , elem in events ],
1392
1399
expected )
1393
1400
1394
- def test_simple_xml (self ):
1395
- for chunk_size in (None , 1 , 5 ):
1396
- with self .subTest (chunk_size = chunk_size ):
1397
- parser = ET .XMLPullParser ()
1398
- self .assert_event_tags (parser , [])
1399
- self ._feed (parser , "<!-- comment -->\n " , chunk_size )
1400
- self .assert_event_tags (parser , [])
1401
- self ._feed (parser ,
1402
- "<root>\n <element key='value'>text</element" ,
1403
- chunk_size )
1404
- self .assert_event_tags (parser , [])
1405
- self ._feed (parser , ">\n " , chunk_size )
1406
- self .assert_event_tags (parser , [('end' , 'element' )])
1407
- self ._feed (parser , "<element>text</element>tail\n " , chunk_size )
1408
- self ._feed (parser , "<empty-element/>\n " , chunk_size )
1409
- self .assert_event_tags (parser , [
1410
- ('end' , 'element' ),
1411
- ('end' , 'empty-element' ),
1412
- ])
1413
- self ._feed (parser , "</root>\n " , chunk_size )
1414
- self .assert_event_tags (parser , [('end' , 'root' )])
1415
- self .assertIsNone (parser .close ())
1401
+ def test_simple_xml (self , chunk_size = None ):
1402
+ parser = ET .XMLPullParser ()
1403
+ self .assert_event_tags (parser , [])
1404
+ self ._feed (parser , "<!-- comment -->\n " , chunk_size )
1405
+ self .assert_event_tags (parser , [])
1406
+ self ._feed (parser ,
1407
+ "<root>\n <element key='value'>text</element" ,
1408
+ chunk_size )
1409
+ self .assert_event_tags (parser , [])
1410
+ self ._feed (parser , ">\n " , chunk_size )
1411
+ self .assert_event_tags (parser , [('end' , 'element' )])
1412
+ self ._feed (parser , "<element>text</element>tail\n " , chunk_size )
1413
+ self ._feed (parser , "<empty-element/>\n " , chunk_size )
1414
+ self .assert_event_tags (parser , [
1415
+ ('end' , 'element' ),
1416
+ ('end' , 'empty-element' ),
1417
+ ])
1418
+ self ._feed (parser , "</root>\n " , chunk_size )
1419
+ self .assert_event_tags (parser , [('end' , 'root' )])
1420
+ self .assertIsNone (parser .close ())
1421
+
1422
+ @fails_with_expat_2_6_0
1423
+ def test_simple_xml_chunk_1 (self ):
1424
+ self .test_simple_xml (chunk_size = 1 )
1425
+
1426
+ @fails_with_expat_2_6_0
1427
+ def test_simple_xml_chunk_5 (self ):
1428
+ self .test_simple_xml (chunk_size = 5 )
1429
+
1430
+ def test_simple_xml_chunk_22 (self ):
1431
+ self .test_simple_xml (chunk_size = 22 )
1416
1432
1417
1433
def test_feed_while_iterating (self ):
1418
1434
parser = ET .XMLPullParser ()
0 commit comments