mirror of
https://github.com/python/cpython.git
synced 2025-11-25 04:34:37 +00:00
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:
parent
c032ee939b
commit
fbdeaad069
31 changed files with 253 additions and 250 deletions
|
|
@ -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)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue