14
14
import operator
15
15
import os
16
16
import pickle
17
+ import pyexpat
17
18
import sys
18
19
import textwrap
19
20
import types
103
104
<document>&entity;</document>
104
105
"""
105
106
107
+
108
+ fails_with_expat_2_6_0 = (unittest .expectedFailure
109
+ if pyexpat .version_info >= (2 , 6 , 0 ) else
110
+ lambda test : test )
111
+
112
+
106
113
def checkwarnings (* filters , quiet = False ):
107
114
def decorator (test ):
108
115
def newtest (* args , ** kwargs ):
@@ -1266,28 +1273,37 @@ def assert_event_tags(self, parser, expected, max_events=None):
1266
1273
self .assertEqual ([(action , elem .tag ) for action , elem in events ],
1267
1274
expected )
1268
1275
1269
- def test_simple_xml (self ):
1270
- for chunk_size in (None , 1 , 5 ):
1271
- with self .subTest (chunk_size = chunk_size ):
1272
- parser = ET .XMLPullParser ()
1273
- self .assert_event_tags (parser , [])
1274
- self ._feed (parser , "<!-- comment -->\n " , chunk_size )
1275
- self .assert_event_tags (parser , [])
1276
- self ._feed (parser ,
1277
- "<root>\n <element key='value'>text</element" ,
1278
- chunk_size )
1279
- self .assert_event_tags (parser , [])
1280
- self ._feed (parser , ">\n " , chunk_size )
1281
- self .assert_event_tags (parser , [('end' , 'element' )])
1282
- self ._feed (parser , "<element>text</element>tail\n " , chunk_size )
1283
- self ._feed (parser , "<empty-element/>\n " , chunk_size )
1284
- self .assert_event_tags (parser , [
1285
- ('end' , 'element' ),
1286
- ('end' , 'empty-element' ),
1287
- ])
1288
- self ._feed (parser , "</root>\n " , chunk_size )
1289
- self .assert_event_tags (parser , [('end' , 'root' )])
1290
- self .assertIsNone (parser .close ())
1276
+ def test_simple_xml (self , chunk_size = None ):
1277
+ parser = ET .XMLPullParser ()
1278
+ self .assert_event_tags (parser , [])
1279
+ self ._feed (parser , "<!-- comment -->\n " , chunk_size )
1280
+ self .assert_event_tags (parser , [])
1281
+ self ._feed (parser ,
1282
+ "<root>\n <element key='value'>text</element" ,
1283
+ chunk_size )
1284
+ self .assert_event_tags (parser , [])
1285
+ self ._feed (parser , ">\n " , chunk_size )
1286
+ self .assert_event_tags (parser , [('end' , 'element' )])
1287
+ self ._feed (parser , "<element>text</element>tail\n " , chunk_size )
1288
+ self ._feed (parser , "<empty-element/>\n " , chunk_size )
1289
+ self .assert_event_tags (parser , [
1290
+ ('end' , 'element' ),
1291
+ ('end' , 'empty-element' ),
1292
+ ])
1293
+ self ._feed (parser , "</root>\n " , chunk_size )
1294
+ self .assert_event_tags (parser , [('end' , 'root' )])
1295
+ self .assertIsNone (parser .close ())
1296
+
1297
+ @fails_with_expat_2_6_0
1298
+ def test_simple_xml_chunk_1 (self ):
1299
+ self .test_simple_xml (chunk_size = 1 )
1300
+
1301
+ @fails_with_expat_2_6_0
1302
+ def test_simple_xml_chunk_5 (self ):
1303
+ self .test_simple_xml (chunk_size = 5 )
1304
+
1305
+ def test_simple_xml_chunk_22 (self ):
1306
+ self .test_simple_xml (chunk_size = 22 )
1291
1307
1292
1308
def test_feed_while_iterating (self ):
1293
1309
parser = ET .XMLPullParser ()
0 commit comments