Merge heads.
This commit is contained in:
commit
fe2d27d068
|
@ -0,0 +1,101 @@
|
||||||
|
# Tests for xml.dom.minicompat
|
||||||
|
|
||||||
|
import pickle
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
import xml.dom
|
||||||
|
from xml.dom.minicompat import *
|
||||||
|
|
||||||
|
|
||||||
|
class EmptyNodeListTestCase(unittest.TestCase):
|
||||||
|
"""Tests for the EmptyNodeList class."""
|
||||||
|
|
||||||
|
def test_emptynodelist_item(self):
|
||||||
|
# Test item access on an EmptyNodeList.
|
||||||
|
node_list = EmptyNodeList()
|
||||||
|
|
||||||
|
self.assertIsNone(node_list.item(0))
|
||||||
|
self.assertIsNone(node_list.item(-1)) # invalid item
|
||||||
|
|
||||||
|
with self.assertRaises(IndexError):
|
||||||
|
node_list[0]
|
||||||
|
with self.assertRaises(IndexError):
|
||||||
|
node_list[-1]
|
||||||
|
|
||||||
|
def test_emptynodelist_length(self):
|
||||||
|
node_list = EmptyNodeList()
|
||||||
|
# Reading
|
||||||
|
self.assertEqual(node_list.length, 0)
|
||||||
|
# Writing
|
||||||
|
with self.assertRaises(xml.dom.NoModificationAllowedErr):
|
||||||
|
node_list.length = 111
|
||||||
|
|
||||||
|
def test_emptynodelist___add__(self):
|
||||||
|
node_list = EmptyNodeList() + NodeList()
|
||||||
|
self.assertEqual(node_list, NodeList())
|
||||||
|
|
||||||
|
def test_emptynodelist___radd__(self):
|
||||||
|
node_list = [1,2] + EmptyNodeList()
|
||||||
|
self.assertEqual(node_list, [1,2])
|
||||||
|
|
||||||
|
|
||||||
|
class NodeListTestCase(unittest.TestCase):
|
||||||
|
"""Tests for the NodeList class."""
|
||||||
|
|
||||||
|
def test_nodelist_item(self):
|
||||||
|
# Test items access on a NodeList.
|
||||||
|
# First, use an empty NodeList.
|
||||||
|
node_list = NodeList()
|
||||||
|
|
||||||
|
self.assertIsNone(node_list.item(0))
|
||||||
|
self.assertIsNone(node_list.item(-1))
|
||||||
|
|
||||||
|
with self.assertRaises(IndexError):
|
||||||
|
node_list[0]
|
||||||
|
with self.assertRaises(IndexError):
|
||||||
|
node_list[-1]
|
||||||
|
|
||||||
|
# Now, use a NodeList with items.
|
||||||
|
node_list.append(111)
|
||||||
|
node_list.append(999)
|
||||||
|
|
||||||
|
self.assertEqual(node_list.item(0), 111)
|
||||||
|
self.assertIsNone(node_list.item(-1)) # invalid item
|
||||||
|
|
||||||
|
self.assertEqual(node_list[0], 111)
|
||||||
|
self.assertEqual(node_list[-1], 999)
|
||||||
|
|
||||||
|
def test_nodelist_length(self):
|
||||||
|
node_list = NodeList([1, 2])
|
||||||
|
# Reading
|
||||||
|
self.assertEqual(node_list.length, 2)
|
||||||
|
# Writing
|
||||||
|
with self.assertRaises(xml.dom.NoModificationAllowedErr):
|
||||||
|
node_list.length = 111
|
||||||
|
|
||||||
|
def test_nodelist___add__(self):
|
||||||
|
node_list = NodeList([3, 4]) + [1, 2]
|
||||||
|
self.assertEqual(node_list, NodeList([3, 4, 1, 2]))
|
||||||
|
|
||||||
|
def test_nodelist___radd__(self):
|
||||||
|
node_list = [1, 2] + NodeList([3, 4])
|
||||||
|
self.assertEqual(node_list, NodeList([1, 2, 3, 4]))
|
||||||
|
|
||||||
|
def test_nodelist_pickle_roundtrip(self):
|
||||||
|
# Test pickling and unpickling of a NodeList.
|
||||||
|
|
||||||
|
# Empty NodeList.
|
||||||
|
node_list = NodeList()
|
||||||
|
pickled = pickle.dumps(node_list)
|
||||||
|
unpickled = pickle.loads(pickled)
|
||||||
|
self.assertEqual(unpickled, node_list)
|
||||||
|
|
||||||
|
# Non-empty NodeList.
|
||||||
|
node_list.append(1)
|
||||||
|
node_list.append(2)
|
||||||
|
pickled = pickle.dumps(node_list)
|
||||||
|
unpickled = pickle.loads(pickled)
|
||||||
|
self.assertEqual(unpickled, node_list)
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
unittest.main()
|
|
@ -15,6 +15,7 @@ def runtest(name):
|
||||||
runtest("test.test_minidom")
|
runtest("test.test_minidom")
|
||||||
runtest("test.test_pyexpat")
|
runtest("test.test_pyexpat")
|
||||||
runtest("test.test_sax")
|
runtest("test.test_sax")
|
||||||
|
runtest("test.test_xml_dom_minicompat")
|
||||||
runtest("test.test_xml_etree")
|
runtest("test.test_xml_etree")
|
||||||
runtest("test.test_xml_etree_c")
|
runtest("test.test_xml_etree_c")
|
||||||
runtest("test.test_xmlrpc")
|
runtest("test.test_xmlrpc")
|
||||||
|
|
|
@ -240,6 +240,7 @@ Paul Colomiets
|
||||||
Christophe Combelles
|
Christophe Combelles
|
||||||
Geremy Condra
|
Geremy Condra
|
||||||
Denver Coneybeare
|
Denver Coneybeare
|
||||||
|
Phil Connell
|
||||||
Juan José Conti
|
Juan José Conti
|
||||||
Matt Conway
|
Matt Conway
|
||||||
David M. Cooke
|
David M. Cooke
|
||||||
|
|
|
@ -70,6 +70,12 @@ Library
|
||||||
- Issue #17032: The "global" in the "NameError: global name 'x' is not defined"
|
- Issue #17032: The "global" in the "NameError: global name 'x' is not defined"
|
||||||
error message has been removed. Patch by Ram Rachum.
|
error message has been removed. Patch by Ram Rachum.
|
||||||
|
|
||||||
|
Tests
|
||||||
|
-----
|
||||||
|
|
||||||
|
- Issue #12820: add tests for the xml.dom.minicompat module.
|
||||||
|
Patch by John Chandler and Phil Connell.
|
||||||
|
|
||||||
|
|
||||||
What's New in Python 3.3.1 release candidate 1?
|
What's New in Python 3.3.1 release candidate 1?
|
||||||
===============================================
|
===============================================
|
||||||
|
|
Loading…
Reference in New Issue