expunge the xmlcore changes:

41667, 41668 - initial switch to xmlcore
  47044        - mention of xmlcore in What's New
  50687        - mention of xmlcore in the library reference

re-apply xmlcore changes to xml:
  41674        - line ending changes (re-applied manually), directory props
  41677        - add cElementTree wrapper
  41678        - PSF licensing for etree
  41812        - whitespace normalization
  42724        - fix svn:eol-style settings
  43681, 43682 - remove Python version-compatibility cruft from minidom
  46773        - fix encoding of \r\n\t in attr values in saxutils
  47269        - added XMLParser alias for cElementTree compatibility

additional tests were added in Lib/test/test_sax.py that failed with
the xmlcore changes; these relate to SF bugs #1511497, #1513611
This commit is contained in:
Fred Drake 2006-07-29 16:56:15 +00:00
parent c032ee939b
commit fbdeaad069
31 changed files with 253 additions and 250 deletions

View file

@ -1,4 +1,4 @@
# test for xmlcore.dom.minidom
# test for xml.dom.minidom
import os
import sys
@ -7,12 +7,12 @@ import traceback
from StringIO import StringIO
from test.test_support import verbose
import xmlcore.dom
import xmlcore.dom.minidom
import xmlcore.parsers.expat
import xml.dom
import xml.dom.minidom
import xml.parsers.expat
from xmlcore.dom.minidom import parse, Node, Document, parseString
from xmlcore.dom.minidom import getDOMImplementation
from xml.dom.minidom import parse, Node, Document, parseString
from xml.dom.minidom import getDOMImplementation
if __name__ == "__main__":
@ -138,29 +138,29 @@ def testLegalChildren():
text = dom.createTextNode('text')
try: dom.appendChild(text)
except xmlcore.dom.HierarchyRequestErr: pass
except xml.dom.HierarchyRequestErr: pass
else:
print "dom.appendChild didn't raise HierarchyRequestErr"
dom.appendChild(elem)
try: dom.insertBefore(text, elem)
except xmlcore.dom.HierarchyRequestErr: pass
except xml.dom.HierarchyRequestErr: pass
else:
print "dom.appendChild didn't raise HierarchyRequestErr"
try: dom.replaceChild(text, elem)
except xmlcore.dom.HierarchyRequestErr: pass
except xml.dom.HierarchyRequestErr: pass
else:
print "dom.appendChild didn't raise HierarchyRequestErr"
nodemap = elem.attributes
try: nodemap.setNamedItem(text)
except xmlcore.dom.HierarchyRequestErr: pass
except xml.dom.HierarchyRequestErr: pass
else:
print "NamedNodeMap.setNamedItem didn't raise HierarchyRequestErr"
try: nodemap.setNamedItemNS(text)
except xmlcore.dom.HierarchyRequestErr: pass
except xml.dom.HierarchyRequestErr: pass
else:
print "NamedNodeMap.setNamedItemNS didn't raise HierarchyRequestErr"
@ -439,7 +439,7 @@ def testProcessingInstruction():
and pi.firstChild is None
and pi.lastChild is None
and pi.localName is None
and pi.namespaceURI == xmlcore.dom.EMPTY_NAMESPACE)
and pi.namespaceURI == xml.dom.EMPTY_NAMESPACE)
def testProcessingInstructionRepr(): pass
@ -454,7 +454,7 @@ def testTooManyDocumentElements():
elem = doc.createElement("extra")
try:
doc.appendChild(elem)
except xmlcore.dom.HierarchyRequestErr:
except xml.dom.HierarchyRequestErr:
pass
else:
print "Failed to catch expected exception when" \
@ -491,7 +491,7 @@ def testRemoveNamedItem():
confirm(a1.isSameNode(a2))
try:
attrs.removeNamedItem("a")
except xmlcore.dom.NotFoundErr:
except xml.dom.NotFoundErr:
pass
def testRemoveNamedItemNS():
@ -503,7 +503,7 @@ def testRemoveNamedItemNS():
confirm(a1.isSameNode(a2))
try:
attrs.removeNamedItemNS("http://xml.python.org/", "b")
except xmlcore.dom.NotFoundErr:
except xml.dom.NotFoundErr:
pass
def testAttrListValues(): pass
@ -682,7 +682,7 @@ def check_import_document(deep, testName):
doc2 = parseString("<doc/>")
try:
doc1.importNode(doc2, deep)
except xmlcore.dom.NotSupportedErr:
except xml.dom.NotSupportedErr:
pass
else:
raise Exception(testName +
@ -705,14 +705,12 @@ def create_nonempty_doctype():
doctype = getDOMImplementation().createDocumentType("doc", None, None)
doctype.entities._seq = []
doctype.notations._seq = []
notation = xmlcore.dom.minidom.Notation(
"my-notation", None,
"http://xml.python.org/notations/my")
notation = xml.dom.minidom.Notation("my-notation", None,
"http://xml.python.org/notations/my")
doctype.notations._seq.append(notation)
entity = xmlcore.dom.minidom.Entity(
"my-entity", None,
"http://xml.python.org/entities/my",
"my-notation")
entity = xml.dom.minidom.Entity("my-entity", None,
"http://xml.python.org/entities/my",
"my-notation")
entity.version = "1.0"
entity.encoding = "utf-8"
entity.actualEncoding = "us-ascii"
@ -731,7 +729,7 @@ def testImportDocumentTypeShallow():
target = create_doc_without_doctype()
try:
imported = target.importNode(src.doctype, 0)
except xmlcore.dom.NotSupportedErr:
except xml.dom.NotSupportedErr:
pass
else:
raise Exception(
@ -742,7 +740,7 @@ def testImportDocumentTypeDeep():
target = create_doc_without_doctype()
try:
imported = target.importNode(src.doctype, 1)
except xmlcore.dom.NotSupportedErr:
except xml.dom.NotSupportedErr:
pass
else:
raise Exception(
@ -850,7 +848,7 @@ def testNodeListItem():
doc.unlink()
def testSAX2DOM():
from xmlcore.dom import pulldom
from xml.dom import pulldom
sax2dom = pulldom.SAX2DOM()
sax2dom.startDocument()
@ -940,11 +938,11 @@ def testRenameAttribute():
attr = elem.attributes['a']
# Simple renaming
attr = doc.renameNode(attr, xmlcore.dom.EMPTY_NAMESPACE, "b")
attr = doc.renameNode(attr, xml.dom.EMPTY_NAMESPACE, "b")
confirm(attr.name == "b"
and attr.nodeName == "b"
and attr.localName is None
and attr.namespaceURI == xmlcore.dom.EMPTY_NAMESPACE
and attr.namespaceURI == xml.dom.EMPTY_NAMESPACE
and attr.prefix is None
and attr.value == "v"
and elem.getAttributeNode("a") is None
@ -989,11 +987,11 @@ def testRenameAttribute():
and attrmap[("http://xml.python.org/ns2", "d")].isSameNode(attr))
# Rename back to a simple non-NS node
attr = doc.renameNode(attr, xmlcore.dom.EMPTY_NAMESPACE, "e")
attr = doc.renameNode(attr, xml.dom.EMPTY_NAMESPACE, "e")
confirm(attr.name == "e"
and attr.nodeName == "e"
and attr.localName is None
and attr.namespaceURI == xmlcore.dom.EMPTY_NAMESPACE
and attr.namespaceURI == xml.dom.EMPTY_NAMESPACE
and attr.prefix is None
and attr.value == "v"
and elem.getAttributeNode("a") is None
@ -1007,7 +1005,7 @@ def testRenameAttribute():
try:
doc.renameNode(attr, "http://xml.python.org/ns", "xmlns")
except xmlcore.dom.NamespaceErr:
except xml.dom.NamespaceErr:
pass
else:
print "expected NamespaceErr"
@ -1020,11 +1018,11 @@ def testRenameElement():
elem = doc.documentElement
# Simple renaming
elem = doc.renameNode(elem, xmlcore.dom.EMPTY_NAMESPACE, "a")
elem = doc.renameNode(elem, xml.dom.EMPTY_NAMESPACE, "a")
confirm(elem.tagName == "a"
and elem.nodeName == "a"
and elem.localName is None
and elem.namespaceURI == xmlcore.dom.EMPTY_NAMESPACE
and elem.namespaceURI == xml.dom.EMPTY_NAMESPACE
and elem.prefix is None
and elem.ownerDocument.isSameNode(doc))
@ -1047,11 +1045,11 @@ def testRenameElement():
and elem.ownerDocument.isSameNode(doc))
# Rename back to a simple non-NS node
elem = doc.renameNode(elem, xmlcore.dom.EMPTY_NAMESPACE, "d")
elem = doc.renameNode(elem, xml.dom.EMPTY_NAMESPACE, "d")
confirm(elem.tagName == "d"
and elem.nodeName == "d"
and elem.localName is None
and elem.namespaceURI == xmlcore.dom.EMPTY_NAMESPACE
and elem.namespaceURI == xml.dom.EMPTY_NAMESPACE
and elem.prefix is None
and elem.ownerDocument.isSameNode(doc))
@ -1062,15 +1060,15 @@ def checkRenameNodeSharedConstraints(doc, node):
# Make sure illegal NS usage is detected:
try:
doc.renameNode(node, "http://xml.python.org/ns", "xmlns:foo")
except xmlcore.dom.NamespaceErr:
except xml.dom.NamespaceErr:
pass
else:
print "expected NamespaceErr"
doc2 = parseString("<doc/>")
try:
doc2.renameNode(node, xmlcore.dom.EMPTY_NAMESPACE, "foo")
except xmlcore.dom.WrongDocumentErr:
doc2.renameNode(node, xml.dom.EMPTY_NAMESPACE, "foo")
except xml.dom.WrongDocumentErr:
pass
else:
print "expected WrongDocumentErr"
@ -1078,12 +1076,12 @@ def checkRenameNodeSharedConstraints(doc, node):
def testRenameOther():
# We have to create a comment node explicitly since not all DOM
# builders used with minidom add comments to the DOM.
doc = xmlcore.dom.minidom.getDOMImplementation().createDocument(
xmlcore.dom.EMPTY_NAMESPACE, "e", None)
doc = xml.dom.minidom.getDOMImplementation().createDocument(
xml.dom.EMPTY_NAMESPACE, "e", None)
node = doc.createComment("comment")
try:
doc.renameNode(node, xmlcore.dom.EMPTY_NAMESPACE, "foo")
except xmlcore.dom.NotSupportedErr:
doc.renameNode(node, xml.dom.EMPTY_NAMESPACE, "foo")
except xml.dom.NotSupportedErr:
pass
else:
print "expected NotSupportedErr when renaming comment node"
@ -1194,13 +1192,13 @@ def testSchemaType():
# since each supports a different level of DTD information.
t = elem.schemaType
confirm(t.name is None
and t.namespace == xmlcore.dom.EMPTY_NAMESPACE)
and t.namespace == xml.dom.EMPTY_NAMESPACE)
names = "id notid text enum ref refs ent ents nm nms".split()
for name in names:
a = elem.getAttributeNode(name)
t = a.schemaType
confirm(hasattr(t, "name")
and t.namespace == xmlcore.dom.EMPTY_NAMESPACE)
and t.namespace == xml.dom.EMPTY_NAMESPACE)
def testSetIdAttribute():
doc = parseString("<doc a1='v' a2='w'/>")
@ -1229,7 +1227,7 @@ def testSetIdAttribute():
and a2.isId
and not a3.isId)
# renaming an attribute should not affect its ID-ness:
doc.renameNode(a2, xmlcore.dom.EMPTY_NAMESPACE, "an")
doc.renameNode(a2, xml.dom.EMPTY_NAMESPACE, "an")
confirm(e.isSameNode(doc.getElementById("w"))
and a2.isId)
@ -1265,7 +1263,7 @@ def testSetIdAttributeNS():
confirm(not a3.isId)
confirm(doc.getElementById("v") is None)
# renaming an attribute should not affect its ID-ness:
doc.renameNode(a2, xmlcore.dom.EMPTY_NAMESPACE, "an")
doc.renameNode(a2, xml.dom.EMPTY_NAMESPACE, "an")
confirm(e.isSameNode(doc.getElementById("w"))
and a2.isId)
@ -1301,7 +1299,7 @@ def testSetIdAttributeNode():
confirm(not a3.isId)
confirm(doc.getElementById("v") is None)
# renaming an attribute should not affect its ID-ness:
doc.renameNode(a2, xmlcore.dom.EMPTY_NAMESPACE, "an")
doc.renameNode(a2, xml.dom.EMPTY_NAMESPACE, "an")
confirm(e.isSameNode(doc.getElementById("w"))
and a2.isId)