summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorPaul Prescod <prescod@prescod.net>2000-07-01 14:54:16 (GMT)
committerPaul Prescod <prescod@prescod.net>2000-07-01 14:54:16 (GMT)
commit7993bcc0403bec527c11d1612a46321d194a035f (patch)
tree7ccf23b27a58bf814d9053ba2b4f854d648f9eb9 /Lib
parentedd992447457340e15a89e9d8d42057e0625bf66 (diff)
downloadcpython-7993bcc0403bec527c11d1612a46321d194a035f.zip
cpython-7993bcc0403bec527c11d1612a46321d194a035f.tar.gz
cpython-7993bcc0403bec527c11d1612a46321d194a035f.tar.bz2
Added minidom tests.
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/output/test_minidom64
-rw-r--r--Lib/test/test.xml115
-rw-r--r--Lib/test/test_minidom.py321
3 files changed, 500 insertions, 0 deletions
diff --git a/Lib/test/output/test_minidom b/Lib/test/output/test_minidom
new file mode 100644
index 0000000..0cf479f
--- /dev/null
+++ b/Lib/test/output/test_minidom
@@ -0,0 +1,64 @@
+Test Succeeded testAAA
+Test Succeeded testAAB
+Test Succeeded testAddAttr
+Test Succeeded testAppendChild
+Test Succeeded testAttrListItem
+Test Succeeded testAttrListItemNS
+Test Succeeded testAttrListItems
+Test Succeeded testAttrListKeys
+Test Succeeded testAttrListKeysNS
+Test Succeeded testAttrListLength
+Test Succeeded testAttrListValues
+Test Succeeded testAttrList__getitem__
+Test Succeeded testAttrList__setitem__
+Test Succeeded testAttributeRepr
+Test Succeeded testChangeAttr
+Test Succeeded testChildNodes
+Test Succeeded testCloneAttributeDeep
+Test Succeeded testCloneAttributeShallow
+Test Succeeded testCloneDocumentDeep
+Test Succeeded testCloneDocumentShallow
+Test Succeeded testCloneElementDeep
+Test Succeeded testCloneElementShallow
+Test Succeeded testCloneElementShallowCopiesAttributes
+Test Succeeded testClonePIDeep
+Test Succeeded testClonePIShallow
+Test Succeeded testComment
+Test Succeeded testCreatAttributeNS
+Test Succeeded testCreateElementNS
+Test Succeeded testDeleteAttr
+Test Succeeded testDocumentElement
+Test Succeeded testElement
+Test Succeeded testElementReprAndStr
+Test Succeeded testFirstChild
+Test Succeeded testGetAttrLength
+Test Succeeded testGetAttrList
+Test Succeeded testGetAttrValues
+Test Succeeded testGetAttribute
+Test Succeeded testGetAttributeNS
+Test Succeeded testGetAttributeNode
+Test Succeeded testGetElementsByTagName
+Test Succeeded testGetElementsByTagNameNS
+Test Succeeded testGetEmptyNodeListFromElementsByTagNameNS
+Test Succeeded testHasChildNodes
+Test Succeeded testInsertBefore
+Test Succeeded testNonZero
+Test Succeeded testParse
+Test Succeeded testParseAttributeNamespaces
+Test Succeeded testParseAttributes
+Test Succeeded testParseElement
+Test Succeeded testParseElementNamespaces
+Test Succeeded testParseProcessingInstructions
+Test Succeeded testParseString
+Test Succeeded testProcessingInstruction
+Test Succeeded testProcessingInstructionRepr
+Test Succeeded testRemoveAttr
+Test Succeeded testRemoveAttrNS
+Test Succeeded testRemoveAttributeNode
+Test Succeeded testSetAttrValueandNodeValue
+Test Succeeded testTextNodeRepr
+Test Succeeded testTextRepr
+Test Succeeded testTooManyDocumentElements
+Test Succeeded testUnlink
+Test Succeeded testWriteText
+Test Succeeded testWriteXML
diff --git a/Lib/test/test.xml b/Lib/test/test.xml
new file mode 100644
index 0000000..9af92fb
--- /dev/null
+++ b/Lib/test/test.xml
@@ -0,0 +1,115 @@
+<?xml version="1.0"?>
+<HTML xmlns:pp="http://www.isogen.com/paul/post-processor">
+<TITLE>Introduction to XSL</TITLE>
+<H1>Introduction to XSL</H1>
+
+
+
+ <HR/>
+ <H2>Overview
+</H2>
+ <UL>
+
+ <LI>1.Intro</LI>
+
+ <LI>2.History</LI>
+
+ <LI>3.XSL Basics</LI>
+
+ <LI>Lunch</LI>
+
+ <LI>4.An XML Data Model</LI>
+
+ <LI>5.XSL Patterns</LI>
+
+ <LI>6.XSL Templates</LI>
+
+ <LI>7.XSL Formatting Model
+</LI>
+
+ </UL>
+
+
+
+
+
+
+ <HR/>
+ <H2>Intro</H2>
+ <UL>
+
+ <LI>Who am I?</LI>
+
+ <LI>Who are you?</LI>
+
+ <LI>Why are we here?
+</LI>
+
+ </UL>
+
+
+
+
+
+
+ <HR/>
+ <H2>History: XML and SGML</H2>
+ <UL>
+
+ <LI>XML is a subset of SGML.</LI>
+
+ <LI>SGML allows the separation of abstract content from formatting.</LI>
+
+ <LI>Also one of XML's primary virtues (in the doc publishing domain).
+</LI>
+
+ </UL>
+
+
+
+
+
+
+ <HR/>
+ <H2>History: What are stylesheets?</H2>
+ <UL>
+
+ <LI>Stylesheets specify the formatting of SGML/XML documents.</LI>
+
+ <LI>Stylesheets put the &quot;style&quot; back into documents.</LI>
+
+ <LI>New York Times content+NYT Stylesheet = NYT paper
+</LI>
+
+ </UL>
+
+
+
+
+
+
+ <HR/>
+ <H2>History: FOSI</H2>
+ <UL>
+
+ <LI>FOSI: &quot;Formatted Output Specification Instance&quot;
+<UL>
+ <LI>MIL-STD-28001
+ </LI>
+
+ <LI>FOSI's are SGML documents
+ </LI>
+
+ <LI>A stylesheet for another document
+ </LI>
+</UL></LI>
+
+ <LI>Obsolete but implemented...
+</LI>
+
+ </UL>
+
+
+
+
+</HTML>
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
+