mirror of
https://github.com/python/cpython.git
synced 2025-11-17 17:46:45 +00:00
The Usual
This commit is contained in:
parent
0872e05851
commit
d635b1d724
20 changed files with 643 additions and 422 deletions
|
|
@ -5,6 +5,7 @@ from xml.dom.minidom import parse, Node, Document, parseString
|
|||
import os.path
|
||||
import sys
|
||||
import traceback
|
||||
from test_support import verbose
|
||||
|
||||
if __name__ == "__main__":
|
||||
base = sys.argv[0]
|
||||
|
|
@ -13,15 +14,28 @@ 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() ) )
|
||||
dom.unlink()
|
||||
confirm(isinstance(dom,Document))
|
||||
|
||||
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 +46,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( "<abc/>" )
|
||||
|
|
@ -91,20 +105,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 +128,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 +154,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 +165,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( "<abc/>" )
|
||||
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 +213,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,25 +222,25 @@ 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
|
||||
def _testElementReprAndStrUnicodeNS():
|
||||
dom=Document()
|
||||
el=dom.appendChild(
|
||||
dom.createElementNS( u"http://www.slashdot.org", u"slash:abc" ))
|
||||
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 +326,9 @@ def testClonePIDeep(): pass
|
|||
|
||||
names=globals().keys()
|
||||
names.sort()
|
||||
|
||||
works=1
|
||||
|
||||
for name in names:
|
||||
if name.startswith( "test" ):
|
||||
func=globals()[name]
|
||||
|
|
@ -320,12 +337,24 @@ for name in names:
|
|||
print "Test Succeeded", name
|
||||
if len( Node.allnodes ):
|
||||
print "Garbage left over:"
|
||||
print Node.allnodes.items()[0:10]
|
||||
if verbose:
|
||||
print Node.allnodes.items()[0:10]
|
||||
else:
|
||||
# Don't print specific nodes if repeatable results
|
||||
# are needed
|
||||
print len(Node.allnodes)
|
||||
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!"
|
||||
|
||||
Node.debug = None # Delete debug output collected in a StringIO object
|
||||
Node._debug = 0 # And reset debug mode
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue