|
14 | 14 | import io
|
15 | 15 | import operator
|
16 | 16 | import os
|
| 17 | +import pyexpat |
17 | 18 | import re
|
18 | 19 | import sys
|
19 | 20 | import textwrap
|
@@ -4396,29 +4397,44 @@ def assert_event_tags(self, parser, expected, max_events=None):
|
4396 | 4397 | self.assertEqual([(action, elem.tag) for action, elem in events],
|
4397 | 4398 | expected)
|
4398 | 4399 |
|
4399 |
| - def test_simple_xml(self): |
4400 |
| - for chunk_size in (None, 1, 5): |
4401 |
| - #with self.subTest(chunk_size=chunk_size): |
4402 |
| - parser = self.etree.XMLPullParser() |
4403 |
| - self.assert_event_tags(parser, []) |
4404 |
| - self._feed(parser, "<!-- comment -->\n", chunk_size) |
4405 |
| - self.assert_event_tags(parser, []) |
4406 |
| - self._feed(parser, |
4407 |
| - "<root>\n <element key='value'>text</element", |
4408 |
| - chunk_size) |
4409 |
| - self.assert_event_tags(parser, []) |
4410 |
| - self._feed(parser, ">\n", chunk_size) |
4411 |
| - self.assert_event_tags(parser, [('end', 'element')]) |
4412 |
| - self._feed(parser, "<element>text</element>tail\n", chunk_size) |
4413 |
| - self._feed(parser, "<empty-element/>\n", chunk_size) |
4414 |
| - self.assert_event_tags(parser, [ |
4415 |
| - ('end', 'element'), |
4416 |
| - ('end', 'empty-element'), |
4417 |
| - ]) |
4418 |
| - self._feed(parser, "</root>\n", chunk_size) |
4419 |
| - self.assert_event_tags(parser, [('end', 'root')]) |
4420 |
| - root = self._close_and_return_root(parser) |
4421 |
| - self.assertEqual(root.tag, 'root') |
| 4400 | + def test_simple_xml(self, chunk_size=None): |
| 4401 | + parser = self.etree.XMLPullParser() |
| 4402 | + self.assert_event_tags(parser, []) |
| 4403 | + self._feed(parser, "<!-- comment -->\n", chunk_size) |
| 4404 | + self.assert_event_tags(parser, []) |
| 4405 | + self._feed(parser, |
| 4406 | + "<root>\n <element key='value'>text</element", |
| 4407 | + chunk_size) |
| 4408 | + self.assert_event_tags(parser, []) |
| 4409 | + self._feed(parser, ">\n", chunk_size) |
| 4410 | + self.assert_event_tags(parser, [('end', 'element')]) |
| 4411 | + self._feed(parser, "<element>text</element>tail\n", chunk_size) |
| 4412 | + self._feed(parser, "<empty-element/>\n", chunk_size) |
| 4413 | + self.assert_event_tags(parser, [ |
| 4414 | + ('end', 'element'), |
| 4415 | + ('end', 'empty-element'), |
| 4416 | + ]) |
| 4417 | + self._feed(parser, "</root>\n", chunk_size) |
| 4418 | + self.assert_event_tags(parser, [('end', 'root')]) |
| 4419 | + root = self._close_and_return_root(parser) |
| 4420 | + self.assertEqual(root.tag, 'root') |
| 4421 | + |
| 4422 | + def test_simple_xml_chunk_1(self): |
| 4423 | + if self.etree is not etree and pyexpat.version_info >= (2, 6, 0): |
| 4424 | + raise unittest.SkipTest( |
| 4425 | + "Feeding the parser by too small chunks defers parsing" |
| 4426 | + ) |
| 4427 | + self.test_simple_xml(chunk_size=1) |
| 4428 | + |
| 4429 | + def test_simple_xml_chunk_5(self): |
| 4430 | + if self.etree is not etree and pyexpat.version_info >= (2, 6, 0): |
| 4431 | + raise unittest.SkipTest( |
| 4432 | + "Feeding the parser by too small chunks defers parsing" |
| 4433 | + ) |
| 4434 | + self.test_simple_xml(chunk_size=5) |
| 4435 | + |
| 4436 | + def test_simple_xml_chunk_22(self): |
| 4437 | + self.test_simple_xml(chunk_size=22) |
4422 | 4438 |
|
4423 | 4439 | def test_feed_while_iterating(self):
|
4424 | 4440 | parser = self.etree.XMLPullParser()
|
|
0 commit comments