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
120
121
</foo>
121
122
"""
122
123
124
+ fails_with_expat_2_6_0 = (unittest .expectedFailure
125
+ if pyexpat .version_info >= (2 , 6 , 0 ) else
126
+ lambda test : test )
127
+
123
128
def checkwarnings (* filters , quiet = False ):
124
129
def decorator (test ):
125
130
def newtest (* args , ** kwargs ):
@@ -1480,28 +1485,37 @@ def assert_event_tags(self, parser, expected, max_events=None):
1480
1485
self .assertEqual ([(action , elem .tag ) for action , elem in events ],
1481
1486
expected )
1482
1487
1483
- def test_simple_xml (self ):
1484
- for chunk_size in (None , 1 , 5 ):
1485
- with self .subTest (chunk_size = chunk_size ):
1486
- parser = ET .XMLPullParser ()
1487
- self .assert_event_tags (parser , [])
1488
- self ._feed (parser , "<!-- comment -->\n " , chunk_size )
1489
- self .assert_event_tags (parser , [])
1490
- self ._feed (parser ,
1491
- "<root>\n <element key='value'>text</element" ,
1492
- chunk_size )
1493
- self .assert_event_tags (parser , [])
1494
- self ._feed (parser , ">\n " , chunk_size )
1495
- self .assert_event_tags (parser , [('end' , 'element' )])
1496
- self ._feed (parser , "<element>text</element>tail\n " , chunk_size )
1497
- self ._feed (parser , "<empty-element/>\n " , chunk_size )
1498
- self .assert_event_tags (parser , [
1499
- ('end' , 'element' ),
1500
- ('end' , 'empty-element' ),
1501
- ])
1502
- self ._feed (parser , "</root>\n " , chunk_size )
1503
- self .assert_event_tags (parser , [('end' , 'root' )])
1504
- self .assertIsNone (parser .close ())
1488
+ def test_simple_xml (self , chunk_size = None ):
1489
+ parser = ET .XMLPullParser ()
1490
+ self .assert_event_tags (parser , [])
1491
+ self ._feed (parser , "<!-- comment -->\n " , chunk_size )
1492
+ self .assert_event_tags (parser , [])
1493
+ self ._feed (parser ,
1494
+ "<root>\n <element key='value'>text</element" ,
1495
+ chunk_size )
1496
+ self .assert_event_tags (parser , [])
1497
+ self ._feed (parser , ">\n " , chunk_size )
1498
+ self .assert_event_tags (parser , [('end' , 'element' )])
1499
+ self ._feed (parser , "<element>text</element>tail\n " , chunk_size )
1500
+ self ._feed (parser , "<empty-element/>\n " , chunk_size )
1501
+ self .assert_event_tags (parser , [
1502
+ ('end' , 'element' ),
1503
+ ('end' , 'empty-element' ),
1504
+ ])
1505
+ self ._feed (parser , "</root>\n " , chunk_size )
1506
+ self .assert_event_tags (parser , [('end' , 'root' )])
1507
+ self .assertIsNone (parser .close ())
1508
+
1509
+ @fails_with_expat_2_6_0
1510
+ def test_simple_xml_chunk_1 (self ):
1511
+ self .test_simple_xml (chunk_size = 1 )
1512
+
1513
+ @fails_with_expat_2_6_0
1514
+ def test_simple_xml_chunk_5 (self ):
1515
+ self .test_simple_xml (chunk_size = 5 )
1516
+
1517
+ def test_simple_xml_chunk_22 (self ):
1518
+ self .test_simple_xml (chunk_size = 22 )
1505
1519
1506
1520
def test_feed_while_iterating (self ):
1507
1521
parser = ET .XMLPullParser ()
0 commit comments