diff -r f2cb733c9a37 -r fa727f11c36b Lib/test/test_xml_dom_minicompat.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Lib/test/test_xml_dom_minicompat.py Tue Aug 23 04:33:03 2011 +0100 @@ -0,0 +1,112 @@ +# Tests for xml.dom.minicompat + +import pickle +import unittest + +from test.support import verbose, run_unittest, findfile + +import xml.dom +# I feel bad for doing this, but it says to do this in the mincompat module +from xml.dom.minicompat import * + + +class MinicompatTest( unittest.TestCase ): + def test_emptynodelist_item(self): + """ Tests the EmptyNodeList class item method """ + node_list = EmptyNodeList() + + self.assertEquals(node_list.item(0), None) # first item + self.assertEquals(node_list.item(-1), None) # invalid item + + with self.assertRaises(IndexError): + node_list[0] # first item + node_list[-1] # last item + + def test_emptynodelist_length(self): + """ Tests the EmptyNodeList class length property """ + self.assertEquals(EmptyNodeList().length, 0) + + def test_emptynodelist_add(self): + """ Tests the EmptyNodeList class __add__ method """ + node_list = EmptyNodeList() + NodeList() + + self.assertEquals(node_list, NodeList()) + + def test_emptynodelist_radd(self): + """ Tests the EmptyNodeList class __radd__ method """ + node_list = [1,2] + EmptyNodeList() + + self.assertEquals(node_list, [1,2]) + + def test_nodelist_item(self): + """ Tests the NodeList class item method """ + # Try with an empty NodeList first + node_list = NodeList() + + self.assertEquals(node_list.item(0), None) # first item + self.assertEquals(node_list.item(-1), None) # invalid item + + with self.assertRaises(IndexError): + node_list[0] # first item + node_list[-1] # last item + + # now with an item present + node_list.append(111) + node_list.append(999) + + self.assertEquals(node_list.item(0), 111) # first item + self.assertEquals(node_list.item(-1), None) # invalid item + + self.assertEquals(node_list[0], 111) # first item + self.assertEquals(node_list[-1], 999) # last item + + + def test_nodelist_length(self): + """ Tests the NodeList class length property """ + node_list = NodeList() + + # reading + self.assertEquals(node_list.length, 0) + + # writing + with self.assertRaises(xml.dom.NoModificationAllowedErr): + node_list.length = 111 + + def test_nodelist_add(self): + """ Tests the NodeList class __add__ method """ + node_list = NodeList() + [1,2] + + self.assertEquals(node_list, [1,2]) + + def test_nodelist_radd(self): + """ Tests the NodeList class __radd__ method """ + node_list = [1,2] + NodeList() + + self.assertEquals(node_list, [1,2]) + + def test_nodelist_pickle_roundtrip(self): + """ Test pickling and unpickling of a NodeList """ + node_list = NodeList() + + # empty NodeList + pickled_1 = pickle.dumps(node_list) + unpickled_1 = pickle.loads(pickled_1) + + self.assertEquals(unpickled_1, node_list) + + # non-empty NodeList + node_list.append(1) + node_list.append(2) + + pickled_2 = pickle.dumps(node_list) + unpickled_2 = pickle.loads(pickled_2) + + self.assertEquals(unpickled_2, node_list) + + + +def test_main(): + run_unittest(MinicompatTest) + +if __name__ == "__main__": + test_main() diff -r f2cb733c9a37 -r fa727f11c36b Lib/test/xmltests.py --- a/Lib/test/xmltests.py Tue Aug 23 00:58:21 2011 +0200 +++ b/Lib/test/xmltests.py Tue Aug 23 04:33:03 2011 +0100 @@ -15,6 +15,7 @@ runtest("test.test_minidom") runtest("test.test_pyexpat") runtest("test.test_sax") +runtest("test.test_xml_dom_minicompat") runtest("test.test_xml_etree") runtest("test.test_xml_etree_c") runtest("test.test_xmlrpc")