# HG changeset patch # Parent 3894e17e59c47ae1336d26d637733cdc38f5cebe remove non-public 'root' attribute from XMLPullParser API diff -r 3894e17e59c4 -r 37f140bd5a2e Lib/test/test_xml_etree.py --- a/Lib/test/test_xml_etree.py Sat Sep 14 00:40:46 2013 +0200 +++ b/Lib/test/test_xml_etree.py Fri Sep 27 07:31:02 2013 +0200 @@ -985,10 +985,7 @@ ]) self._feed(parser, "\n", chunk_size) self.assert_event_tags(parser, [('end', 'root')]) - # Closing sets the `root` attribute - self.assertIs(parser.root, None) parser.close() - self.assertEqual(parser.root.tag, 'root') def test_feed_while_iterating(self): parser = ET.XMLPullParser() @@ -1021,10 +1018,7 @@ ]) self._feed(parser, "\n") self.assert_event_tags(parser, [('end', '{namespace}root')]) - # Closing sets the `root` attribute - self.assertIs(parser.root, None) parser.close() - self.assertEqual(parser.root.tag, '{namespace}root') def test_ns_events(self): parser = ET.XMLPullParser(events=('start-ns', 'end-ns')) @@ -1065,9 +1059,7 @@ ]) self._feed(parser, "") parser.close() - self.assertIs(parser.root, None) self.assert_event_tags(parser, [('end', 'root')]) - self.assertEqual(parser.root.tag, 'root') parser = ET.XMLPullParser(events=('start',)) self._feed(parser, "\n") @@ -1086,7 +1078,6 @@ ]) self._feed(parser, "") parser.close() - self.assertEqual(parser.root.tag, 'root') def test_events_sequence(self): # Test that events can be some sequence that's not just a tuple or list diff -r 3894e17e59c4 -r 37f140bd5a2e Lib/xml/etree/ElementTree.py --- a/Lib/xml/etree/ElementTree.py Sat Sep 14 00:40:46 2013 +0200 +++ b/Lib/xml/etree/ElementTree.py Fri Sep 27 07:31:02 2013 +0200 @@ -1220,7 +1220,7 @@ # _elementtree.c expects a list, not a deque self._events_queue = [] self._index = 0 - self.root = self._root = None + self._root = None self._parser = _parser or XMLParser(target=TreeBuilder()) # wire up the parser for event reporting if events is None: @@ -1239,8 +1239,6 @@ def close(self): self._root = self._parser.close() self._parser = None - if self._index >= len(self._events_queue): - self.root = self._root def read_events(self): events = self._events_queue @@ -1263,8 +1261,6 @@ raise event else: yield event - if self._parser is None: - self.root = self._root class _IterParseIterator: @@ -1282,7 +1278,7 @@ for event in self._parser.read_events(): return event if self._parser._parser is None: - self.root = self._parser.root + self.root = self._parser._root if self._close_file: self._file.close() raise StopIteration