diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py index 73c8ac48e55..7cddf4b6fd9 100644 --- a/Lib/test/test_minidom.py +++ b/Lib/test/test_minidom.py @@ -13,15 +13,27 @@ else: tstfile = os.path.join(os.path.dirname(base), "test.xml") del base +def confirm( test, testname="Test" ): + if test: + print "Passed " + testname + else: + print "Failed " + testname + raise Exception + Node._debug=1 +def testParseFromFile(): + from StringIO import StringIO + dom=parse( StringIO( open( tstfile ).read() ) ) + print dom + def testGetElementsByTagName( ): dom=parse( tstfile ) - assert dom.getElementsByTagName( "LI" )==\ - dom.documentElement.getElementsByTagName( "LI" ) + confirm( dom.getElementsByTagName( "LI" )==\ + dom.documentElement.getElementsByTagName( "LI" ) ) dom.unlink() dom=None - assert( len( Node.allnodes ))==0 + confirm (len( Node.allnodes )==0) def testInsertBefore( ): dom=parse( tstfile ) @@ -32,44 +44,44 @@ def testInsertBefore( ): #docel.insertBefore( dom.createProcessingInstruction("a", "b"), # docel.childNodes[0]) - #assert docel.childNodes[0].target=="a" - #assert docel.childNodes[2].target=="a" + #confirm( docel.childNodes[0].tet=="a" ) + #confirm( docel.childNodes[2].tet=="a" ) dom.unlink() del dom del docel - assert( len( Node.allnodes ))==0 + confirm( len( Node.allnodes )==0) def testAppendChild(): dom=parse( tstfile ) dom.documentElement.appendChild( dom.createComment( u"Hello" )) - assert dom.documentElement.childNodes[-1].nodeName=="#comment" - assert dom.documentElement.childNodes[-1].data=="Hello" + confirm( dom.documentElement.childNodes[-1].nodeName=="#comment" ) + confirm( dom.documentElement.childNodes[-1].data=="Hello" ) dom.unlink() dom=None - assert( len( Node.allnodes ))==0 + confirm( len( Node.allnodes )==0 ) def testNonZero(): dom=parse( tstfile ) - assert dom # should not be zero + confirm( dom )# should not be zero dom.appendChild( dom.createComment( "foo" ) ) - assert not dom.childNodes[-1].childNodes + confirm( not dom.childNodes[-1].childNodes ) dom.unlink() dom=None - assert( len( Node.allnodes ))==0 + confirm( len( Node.allnodes )==0 ) def testUnlink(): dom=parse( tstfile ) dom.unlink() dom=None - assert( len( Node.allnodes ))==0 + confirm( len( Node.allnodes )==0 ) def testElement(): dom=Document() dom.appendChild( dom.createElement( "abc" ) ) - assert dom.documentElement + confirm( dom.documentElement ) dom.unlink() dom=None - assert( len( Node.allnodes ))==0 + confirm( len( Node.allnodes )==0 ) def testAAA(): dom=parseString( "" ) @@ -91,20 +103,20 @@ def testAddAttr(): child=dom.appendChild( dom.createElement( "abc" ) ) child.setAttribute( "def", "ghi" ) - assert child.getAttribute( "def" )=="ghi" - assert child.attributes["def"].value=="ghi" + confirm( child.getAttribute( "def" )=="ghi" ) + confirm( child.attributes["def"].value=="ghi" ) child.setAttribute( "jkl", "mno" ) - assert child.getAttribute( "jkl" )=="mno" - assert child.attributes["jkl"].value=="mno" + confirm( child.getAttribute( "jkl" )=="mno" ) + confirm( child.attributes["jkl"].value=="mno" ) - assert len( child.attributes )==2 + confirm( len( child.attributes )==2 ) child.setAttribute( "def", "newval" ) - assert child.getAttribute( "def" )=="newval" - assert child.attributes["def"].value=="newval" + confirm( child.getAttribute( "def" )=="newval" ) + confirm( child.attributes["def"].value=="newval" ) - assert len( child.attributes )==2 + confirm( len( child.attributes )==2 ) dom.unlink() dom=None @@ -114,22 +126,22 @@ def testDeleteAttr(): dom=Document() child=dom.appendChild( dom.createElement( "abc" ) ) - assert len( child.attributes)==0 + confirm( len( child.attributes)==0 ) child.setAttribute( "def", "ghi" ) - assert len( child.attributes)==1 + confirm( len( child.attributes)==1 ) del child.attributes["def"] - assert len( child.attributes)==0 + confirm( len( child.attributes)==0 ) dom.unlink() - assert( len( Node.allnodes ))==0 + confirm( len( Node.allnodes )==0 ) def testRemoveAttr(): dom=Document() child=dom.appendChild( dom.createElement( "abc" ) ) child.setAttribute( "def", "ghi" ) - assert len( child.attributes)==1 + confirm( len( child.attributes)==1 ) child.removeAttribute("def" ) - assert len( child.attributes)==0 + confirm( len( child.attributes)==0 ) dom.unlink() @@ -140,9 +152,9 @@ def testRemoveAttrNS(): child.setAttributeNS( "http://www.w3.org", "xmlns:python", "http://www.python.org" ) child.setAttributeNS( "http://www.python.org", "python:abcattr", "foo" ) - assert len( child.attributes )==2 + confirm( len( child.attributes )==2 ) child.removeAttributeNS( "http://www.python.org", "abcattr" ) - assert len( child.attributes )==1 + confirm( len( child.attributes )==1 ) dom.unlink() dom=None @@ -151,31 +163,31 @@ def testRemoveAttributeNode(): dom=Document() child=dom.appendChild( dom.createElement( "foo" ) ) child.setAttribute( "spam", "jam" ) - assert len( child.attributes )==1 + confirm( len( child.attributes )==1 ) node=child.getAttributeNode( "spam" ) child.removeAttributeNode( node ) - assert len( child.attributes )==0 + confirm( len( child.attributes )==0 ) dom.unlink() dom=None - assert len( Node.allnodes )==0 + confirm( len( Node.allnodes )==0 ) def testChangeAttr(): dom=parseString( "" ) el=dom.documentElement el.setAttribute( "spam", "jam" ) - assert len( el.attributes )==1 + confirm( len( el.attributes )==1 ) el.setAttribute( "spam", "bam" ) - assert len( el.attributes )==1 + confirm( len( el.attributes )==1 ) el.attributes["spam"]="ham" - assert len( el.attributes )==1 + confirm( len( el.attributes )==1 ) el.setAttribute( "spam2", "bam" ) - assert len( el.attributes )==2 + confirm( len( el.attributes )==2 ) el.attributes[ "spam2"]= "bam2" - assert len( el.attributes )==2 + confirm( len( el.attributes )==2 ) dom.unlink() dom=None - assert len( Node.allnodes )==0 + confirm( len( Node.allnodes )==0 ) def testGetAttrList(): pass @@ -199,7 +211,7 @@ def testElementReprAndStr(): el=dom.appendChild( dom.createElement( "abc" ) ) string1=repr( el ) string2=str( el ) - assert string1==string2 + confirm( string1==string2 ) dom.unlink() # commented out until Fredrick's fix is checked in @@ -208,7 +220,7 @@ def _testElementReprAndStrUnicode(): el=dom.appendChild( dom.createElement( u"abc" ) ) string1=repr( el ) string2=str( el ) - assert string1==string2 + confirm( string1==string2 ) dom.unlink() # commented out until Fredrick's fix is checked in @@ -218,15 +230,15 @@ def _testElementReprAndStrUnicodeNS(): dom.createElementNS( u"http://www.slashdot.org", u"slash:abc" )) string1=repr( el ) string2=str( el ) - assert string1==string2 - assert string1.find("slash:abc" )!=-1 + confirm( string1==string2 ) + confirm( string1.find("slash:abc" )!=-1 ) dom.unlink() def testAttributeRepr(): dom=Document() el=dom.appendChild( dom.createElement( u"abc" ) ) node=el.setAttribute( "abc", "def" ) - assert str( node ) == repr( node ) + confirm( str( node ) == repr( node ) ) dom.unlink() def testTextNodeRepr(): pass @@ -312,6 +324,9 @@ def testClonePIDeep(): pass names=globals().keys() names.sort() + +works=1 + for name in names: if name.startswith( "test" ): func=globals()[name] @@ -323,9 +338,14 @@ for name in names: print Node.allnodes.items()[0:10] Node.allnodes={} except Exception, e : + works=0 print "Test Failed: ", name apply( traceback.print_exception, sys.exc_info() ) print `e` Node.allnodes={} - raise + +if works: + print "All tests succeeded" +else: + print "\n\n\n\n************ Check for failures!"