diff options
author | Paul Prescod <prescod@prescod.net> | 2000-07-01 14:54:16 (GMT) |
---|---|---|
committer | Paul Prescod <prescod@prescod.net> | 2000-07-01 14:54:16 (GMT) |
commit | 7993bcc0403bec527c11d1612a46321d194a035f (patch) | |
tree | 7ccf23b27a58bf814d9053ba2b4f854d648f9eb9 /Lib/test/test_minidom.py | |
parent | edd992447457340e15a89e9d8d42057e0625bf66 (diff) | |
download | cpython-7993bcc0403bec527c11d1612a46321d194a035f.zip cpython-7993bcc0403bec527c11d1612a46321d194a035f.tar.gz cpython-7993bcc0403bec527c11d1612a46321d194a035f.tar.bz2 |
Added minidom tests.
Diffstat (limited to 'Lib/test/test_minidom.py')
-rw-r--r-- | Lib/test/test_minidom.py | 321 |
1 files changed, 321 insertions, 0 deletions
diff --git a/Lib/test/test_minidom.py b/Lib/test/test_minidom.py new file mode 100644 index 0000000..4819bc6 --- /dev/null +++ b/Lib/test/test_minidom.py @@ -0,0 +1,321 @@ +from xml.dom.minidom import parse, Node, Document, parseString +import traceback, sys + +tstfile="test.xml" + +Node._debug=1 + +def testGetElementsByTagName( ): + dom=parse( tstfile ) + assert dom.getElementsByTagName( "LI" )==\ + dom.documentElement.getElementsByTagName( "LI" ) + dom.unlink() + dom=None + assert( len( Node.allnodes ))==0 + +def testInsertBefore( ): + dom=parse( tstfile ) + docel=dom.documentElement + #docel.insertBefore( dom.createProcessingInstruction("a", "b"), + # docel.childNodes[1]) + + #docel.insertBefore( dom.createProcessingInstruction("a", "b"), + # docel.childNodes[0]) + + #assert docel.childNodes[0].target=="a" + #assert docel.childNodes[2].target=="a" + dom.unlink() + del dom + del docel + assert( 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" + dom.unlink() + dom=None + assert( len( Node.allnodes ))==0 + +def testNonZero(): + dom=parse( tstfile ) + assert dom # should not be zero + dom.appendChild( dom.createComment( "foo" ) ) + assert not dom.childNodes[-1].childNodes + dom.unlink() + dom=None + assert( len( Node.allnodes ))==0 + +def testUnlink(): + dom=parse( tstfile ) + dom.unlink() + dom=None + assert( len( Node.allnodes ))==0 + +def testElement(): + dom=Document() + dom.appendChild( dom.createElement( "abc" ) ) + assert dom.documentElement + dom.unlink() + dom=None + assert( len( Node.allnodes ))==0 + +def testAAA(): + dom=parseString( "<abc/>" ) + el=dom.documentElement + el.setAttribute( "spam", "jam2" ) + dom.unlink() + dom=None + +def testAAB(): + dom=parseString( "<abc/>" ) + el=dom.documentElement + el.setAttribute( "spam", "jam" ) + el.setAttribute( "spam", "jam2" ) + dom.unlink() + dom=None + +def testAddAttr(): + dom=Document() + child=dom.appendChild( dom.createElement( "abc" ) ) + + child.setAttribute( "def", "ghi" ) + assert child.getAttribute( "def" )=="ghi" + assert child.attributes["def"].value=="ghi" + + child.setAttribute( "jkl", "mno" ) + assert child.getAttribute( "jkl" )=="mno" + assert child.attributes["jkl"].value=="mno" + + assert len( child.attributes )==2 + + child.setAttribute( "def", "newval" ) + assert child.getAttribute( "def" )=="newval" + assert child.attributes["def"].value=="newval" + + assert len( child.attributes )==2 + + dom.unlink() + dom=None + child=None + +def testDeleteAttr(): + dom=Document() + child=dom.appendChild( dom.createElement( "abc" ) ) + + assert len( child.attributes)==0 + child.setAttribute( "def", "ghi" ) + assert len( child.attributes)==1 + del child.attributes["def"] + assert len( child.attributes)==0 + dom.unlink() + assert( len( Node.allnodes ))==0 + +def testRemoveAttr(): + dom=Document() + child=dom.appendChild( dom.createElement( "abc" ) ) + + child.setAttribute( "def", "ghi" ) + assert len( child.attributes)==1 + child.removeAttribute("def" ) + assert len( child.attributes)==0 + + dom.unlink() + +def testRemoveAttrNS(): + dom=Document() + child=dom.appendChild( + dom.createElementNS( "http://www.python.org", "python:abc" ) ) + 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 + child.removeAttributeNS( "http://www.python.org", "abcattr" ) + assert len( child.attributes )==1 + + dom.unlink() + dom=None + +def testRemoveAttributeNode(): + dom=Document() + child=dom.appendChild( dom.createElement( "foo" ) ) + child.setAttribute( "spam", "jam" ) + assert len( child.attributes )==1 + node=child.getAttributeNode( "spam" ) + child.removeAttributeNode( node ) + assert len( child.attributes )==0 + + dom.unlink() + dom=None + assert len( Node.allnodes )==0 + +def testChangeAttr(): + dom=parseString( "<abc/>" ) + el=dom.documentElement + el.setAttribute( "spam", "jam" ) + assert len( el.attributes )==1 + el.setAttribute( "spam", "bam" ) + assert len( el.attributes )==1 + el.attributes["spam"]="ham" + assert len( el.attributes )==1 + el.setAttribute( "spam2", "bam" ) + assert len( el.attributes )==2 + el.attributes[ "spam2"]= "bam2" + assert len( el.attributes )==2 + dom.unlink() + dom=None + assert len( Node.allnodes )==0 + +def testGetAttrList(): + pass + +def testGetAttrValues(): pass + +def testGetAttrLength(): pass + +def testGetAttribute(): pass + +def testGetAttributeNS(): pass + +def testGetAttributeNode(): pass + +def testGetElementsByTagNameNS(): pass + +def testGetEmptyNodeListFromElementsByTagNameNS(): pass + +def testElementReprAndStr(): + dom=Document() + el=dom.appendChild( dom.createElement( "abc" ) ) + string1=repr( el ) + string2=str( el ) + assert string1==string2 + dom.unlink() + +# commented out until Fredrick's fix is checked in +def _testElementReprAndStrUnicode(): + dom=Document() + el=dom.appendChild( dom.createElement( u"abc" ) ) + string1=repr( el ) + string2=str( el ) + assert string1==string2 + dom.unlink() + +# commented out until Fredrick's fix is checked in +def _testElementReprAndStrUnicodeNS(): + dom=Document() + el=dom.appendChild( + 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 + dom.unlink() + +def testAttributeRepr(): + dom=Document() + el=dom.appendChild( dom.createElement( u"abc" ) ) + node=el.setAttribute( "abc", "def" ) + assert str( node ) == repr( node ) + dom.unlink() + +def testTextNodeRepr(): pass + +def testWriteXML(): pass + +def testProcessingInstruction(): pass + +def testProcessingInstructionRepr(): pass + +def testTextRepr(): pass + +def testWriteText(): pass + +def testDocumentElement(): pass + +def testTooManyDocumentElements(): pass + +def testCreateElementNS(): pass + +def testCreatAttributeNS(): pass + +def testParse(): pass + +def testParseString(): pass + +def testComment(): pass + +def testAttrListItem(): pass + +def testAttrListItems(): pass + +def testAttrListItemNS(): pass + +def testAttrListKeys(): pass + +def testAttrListKeysNS(): pass + +def testAttrListValues(): pass + +def testAttrListLength(): pass + +def testAttrList__getitem__(): pass + +def testAttrList__setitem__(): pass + +def testSetAttrValueandNodeValue(): pass + +def testParseElement(): pass + +def testParseAttributes(): pass + +def testParseElementNamespaces(): pass + +def testParseAttributeNamespaces(): pass + +def testParseProcessingInstructions(): pass + +def testChildNodes(): pass + +def testFirstChild(): pass + +def testHasChildNodes(): pass + +def testCloneElementShallow(): pass + +def testCloneElementShallowCopiesAttributes(): pass + +def testCloneElementDeep(): pass + +def testCloneDocumentShallow(): pass + +def testCloneDocumentDeep(): pass + +def testCloneAttributeShallow(): pass + +def testCloneAttributeDeep(): pass + +def testClonePIShallow(): pass + +def testClonePIDeep(): pass + + +names=globals().keys() +names.sort() +for name in names: + if name.startswith( "test" ): + func=globals()[name] + try: + func() + print "Test Succeeded", name + if len( Node.allnodes ): + print "Garbage left over:" + print Node.allnodes.items()[0:10] + Node.allnodes={} + except Exception, e : + print "Test Failed: ", name + apply( traceback.print_exception, sys.exc_info() ) + print `e` + Node.allnodes={} + raise + |