[Lxml-checkins] r46272 - lxml/trunk/src/lxml/tests
scoder at codespeak.net
scoder at codespeak.net
Mon Sep 3 13:55:11 CEST 2007
Author: scoder
Date: Mon Sep 3 13:55:10 2007
New Revision: 46272
Modified:
lxml/trunk/src/lxml/tests/test_elementtree.py
Log:
cleanup of test_elementtree.py to integrate cElementTree
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 Mon Sep 3 13:55:10 2007
@@ -9,12 +9,17 @@
"""
import unittest, doctest
-import os, re, shutil, tempfile, copy
+import os, re, shutil, tempfile, copy, operator
-from common_imports import StringIO, etree, ElementTree
-from common_imports import HelperTestCase, fileInTestDir, canonicalize
+from common_imports import StringIO, etree, ElementTree, cElementTree
+from common_imports import fileInTestDir, canonicalize
-class ETreeTestCaseBase(HelperTestCase):
+if cElementTree is not None:
+ if tuple([int(n) for n in
+ getattr(cElementTree, "VERSION", "0.0").split(".")]) <= (1,0,6):
+ cElementTree = None
+
+class ETreeTestCaseBase(unittest.TestCase):
etree = None
def setUp(self):
@@ -75,7 +80,7 @@
self.assertEquals('one', root[0].tag)
self.assertEquals('two', root[1].tag)
self.assertEquals('three', root[2].tag)
- self.assertRaises(IndexError, root.__getitem__, 3)
+ self.assertRaises(IndexError, operator.getitem, root, 3)
def test_subelement(self):
Element = self.etree.Element
@@ -116,7 +121,7 @@
root = doc.getroot()
self.assertEquals(1, len(root))
self.assertEquals('one', root[0].tag)
- self.assertRaises(IndexError, root.__getitem__, 1)
+ self.assertRaises(IndexError, operator.getitem, root, 1)
def test_element_indexing_with_text2(self):
ElementTree = self.etree.ElementTree
@@ -147,7 +152,7 @@
self.assertEquals(d, a[-1])
self.assertEquals(c, a[-2])
self.assertEquals(b, a[-3])
- self.assertRaises(IndexError, a.__getitem__, -4)
+ self.assertRaises(IndexError, operator.getitem, a, -4)
a[-1] = e = Element('e')
self.assertEquals(e, a[-1])
del a[-1]
@@ -266,7 +271,7 @@
root = doc.getroot()
self.assertEquals('One', root.attrib['one'])
self.assertEquals('Two', root.attrib['two'])
- self.assertRaises(KeyError, root.attrib.__getitem__, 'three')
+ self.assertRaises(KeyError, operator.getitem, root.attrib, 'three')
def test_attributes2(self):
ElementTree = self.etree.ElementTree
@@ -917,6 +922,18 @@
self.assertXML("<a><?foo some more text?></a>",
a)
+ def test_processinginstruction(self):
+ # lxml.etree separates target and text
+ Element = self.etree.Element
+ SubElement = self.etree.SubElement
+ ProcessingInstruction = self.etree.PI
+
+ a = Element('a')
+ a.append(ProcessingInstruction('foo', 'some more text'))
+ self.assertEquals(a[0].tag, ProcessingInstruction)
+ self.assertXML("<a><?foo some more text?></a>",
+ a)
+
def test_pi_nonsense(self):
ProcessingInstruction = self.etree.ProcessingInstruction
pi = ProcessingInstruction('foo')
@@ -980,7 +997,7 @@
a = Element('a')
b = SubElement(a, 'b')
- self.assertRaises(IndexError, a.__setitem__, 1, Element('c'))
+ self.assertRaises(IndexError, operator.setitem, a, 1, Element('c'))
def test_setitem_tail(self):
Element = self.etree.Element
@@ -1583,7 +1600,7 @@
a.attrib['bar'] = 'Bar'
self.assertEquals('Foo', a.attrib['foo'])
del a.attrib['foo']
- self.assertRaises(KeyError, a.attrib.__getitem__, 'foo')
+ self.assertRaises(KeyError, operator.getitem, a.attrib, 'foo')
def test_getslice(self):
Element = self.etree.Element
@@ -2514,6 +2531,15 @@
self.assertEquals(qname1, qname1)
self.assertEquals(qname1, qname2)
+ def test_parser_version(self):
+ etree = self.etree
+ parser = etree.XMLParser()
+ if hasattr(parser, "version"):
+ # ElementTree 1.3+, cET
+ self.assert_(re.match("[^ ]+ [0-9.]+", parser.version))
+
+ # helper methods
+
def _writeElement(self, element, encoding='us-ascii'):
"""Write out element for comparison.
"""
@@ -2592,19 +2618,33 @@
mapping["key"] = "value"
self.assertEquals("value", mapping["key"])
+ # assertFalse doesn't exist in Python 2.3
+ try:
+ unittest.TestCase.assertFalse
+ except AttributeError:
+ assertFalse = unittest.TestCase.failIf
-class ETreeTestCase(ETreeTestCaseBase):
- etree = etree
+
+if etree:
+ class ETreeTestCase(ETreeTestCaseBase):
+ etree = etree
if ElementTree:
class ElementTreeTestCase(ETreeTestCaseBase):
etree = ElementTree
+if cElementTree:
+ class CElementTreeTestCase(ETreeTestCaseBase):
+ etree = cElementTree
+
def test_suite():
suite = unittest.TestSuite()
- suite.addTests([unittest.makeSuite(ETreeTestCase)])
+ if etree:
+ suite.addTests([unittest.makeSuite(ETreeTestCase)])
if ElementTree:
suite.addTests([unittest.makeSuite(ElementTreeTestCase)])
+ if cElementTree:
+ suite.addTests([unittest.makeSuite(CElementTreeTestCase)])
return suite
if __name__ == '__main__':
More information about the lxml-checkins
mailing list