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 | |
parent | edd992447457340e15a89e9d8d42057e0625bf66 (diff) | |
download | cpython-7993bcc0403bec527c11d1612a46321d194a035f.zip cpython-7993bcc0403bec527c11d1612a46321d194a035f.tar.gz cpython-7993bcc0403bec527c11d1612a46321d194a035f.tar.bz2 |
Added minidom tests.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/output/test_minidom | 64 | ||||
-rw-r--r-- | Lib/test/test.xml | 115 | ||||
-rw-r--r-- | Lib/test/test_minidom.py | 321 |
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 "style" back into documents.</LI> + + <LI>New York Times content+NYT Stylesheet = NYT paper +</LI> + + </UL> + + + + + + + <HR/> + <H2>History: FOSI</H2> + <UL> + + <LI>FOSI: "Formatted Output Specification Instance" +<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 + |