[Python-checkins] python/dist/src/Lib/test test_pyexpat.py, 1.15,
1.16
davecole at users.sourceforge.net
davecole at users.sourceforge.net
Thu Aug 26 02:37:33 CEST 2004
Update of /cvsroot/python/python/dist/src/Lib/test
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8986/Lib/test
Modified Files:
test_pyexpat.py
Log Message:
Patch #1014930. Expose current parse location to XMLParser.
Index: test_pyexpat.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/test/test_pyexpat.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -d -r1.15 -r1.16
--- test_pyexpat.py 13 Aug 2004 03:09:07 -0000 1.15
+++ test_pyexpat.py 26 Aug 2004 00:37:30 -0000 1.16
@@ -326,3 +326,42 @@
print "Expected RuntimeError for element 'a'; found %r" % e.args[0]
else:
print "Expected RuntimeError for 'a'"
+
+# Test Current* members:
+class PositionTest:
+
+ def __init__(self, expected_list, parser):
+ self.parser = parser
+ self.parser.StartElementHandler = self.StartElementHandler
+ self.parser.EndElementHandler = self.EndElementHandler
+ self.expected_list = expected_list
+ self.upto = 0
+
+ def StartElementHandler(self, name, attrs):
+ self.check_pos('s')
+
+ def EndElementHandler(self, name):
+ self.check_pos('e')
+
+ def check_pos(self, event):
+ pos = (event,
+ self.parser.CurrentByteIndex,
+ self.parser.CurrentLineNumber,
+ self.parser.CurrentColumnNumber)
+ require(self.upto < len(self.expected_list),
+ 'too many parser events')
+ expected = self.expected_list[self.upto]
+ require(pos == expected,
+ 'expected position %s, got %s' % (expected, pos))
+ self.upto += 1
+
+
+parser = expat.ParserCreate()
+handler = PositionTest([('s', 0, 1, 0), ('s', 5, 2, 1), ('s', 11, 3, 2),
+ ('e', 15, 3, 6), ('e', 17, 4, 1), ('e', 22, 5, 0)],
+ parser)
+parser.Parse('''<a>
+ <b>
+ <c/>
+ </b>
+</a>''', 1)
More information about the Python-checkins
mailing list