[Lxml-checkins] r49018 - lxml/trunk/src/lxml/tests

scoder at codespeak.net scoder at codespeak.net
Sat Nov 24 10:46:05 CET 2007


Author: scoder
Date: Sat Nov 24 10:46:04 2007
New Revision: 49018

Modified:
   lxml/trunk/src/lxml/tests/test_elementtree.py
Log:
TreeBuilder tests

Modified: lxml/trunk/src/lxml/tests/test_elementtree.py
==============================================================================
--- lxml/trunk/src/lxml/tests/test_elementtree.py	(original)
+++ lxml/trunk/src/lxml/tests/test_elementtree.py	Sat Nov 24 10:46:04 2007
@@ -3036,7 +3036,6 @@
 
     def test_parser_target_attrib(self):
         assertEquals = self.assertEquals
-        assertFalse  = self.assertFalse
 
         events = []
         class Target(object):
@@ -3059,9 +3058,6 @@
                           events)
 
     def test_parser_target_data(self):
-        assertEquals = self.assertEquals
-        assertFalse  = self.assertFalse
-
         events = []
         class Target(object):
             def start(self, tag, attrib):
@@ -3083,6 +3079,39 @@
                            "end-sub", "data-B", "end-root"],
                           events)
 
+    def test_treebuilder(self):
+        builder = self.etree.TreeBuilder()
+        el = builder.start("root", {'a':'A', 'b':'B'})
+        self.assertEquals("root", el.tag)
+        self.assertEquals({'a':'A', 'b':'B'}, el.attrib)
+        builder.data("ROOTTEXT")
+        el = builder.start("child", {'x':'X', 'y':'Y'})
+        self.assertEquals("child", el.tag)
+        self.assertEquals({'x':'X', 'y':'Y'}, el.attrib)
+        builder.data("CHILDTEXT")
+        el = builder.end("child")
+        self.assertEquals("child", el.tag)
+        self.assertEquals({'x':'X', 'y':'Y'}, el.attrib)
+        self.assertEquals("CHILDTEXT", el.text)
+        self.assertEquals(None, el.tail)
+        builder.data("CHILDTAIL")
+        root = builder.end("root")
+
+        self.assertEquals("root", root.tag)
+        self.assertEquals("ROOTTEXT", root.text)
+        self.assertEquals("CHILDTEXT", root[0].text)
+        self.assertEquals("CHILDTAIL", root[0].tail)
+
+    def test_treebuilder_target(self):
+        parser = self.etree.XMLParser(target=self.etree.TreeBuilder())
+        parser.feed('<root>ROOTTEXT<child>CHILDTEXT</child>CHILDTAIL</root>')
+        root = parser.close()
+
+        self.assertEquals("root", root.tag)
+        self.assertEquals("ROOTTEXT", root.text)
+        self.assertEquals("CHILDTEXT", root[0].text)
+        self.assertEquals("CHILDTAIL", root[0].tail)
+
     # helper methods
 
     def _writeElement(self, element, encoding='us-ascii'):


More information about the lxml-checkins mailing list