MCPcopy Index your code
hub / github.com/python/cpython / check_clone_node_entity

Method check_clone_node_entity

Lib/test/test_minidom.py:956–1001  ·  view source on GitHub ↗
(self, clone_document)

Source from the content-addressed store, hash-verified

954 self.check_clone_pi(1, "testClonePIDeep")
955
956 def check_clone_node_entity(self, clone_document):
957 # bpo-35052: Test user data handler in cloneNode() on a document with
958 # an entity
959 document = xml.dom.minidom.parseString("""
960 <?xml version="1.0" ?>
961 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
962 "http://www.w3.org/TR/html4/strict.dtd"
963 [ <!ENTITY smile "☺"> ]
964 >
965 <doc>Don&#x27;t let entities make you frown &smile;</doc>
966 """.strip())
967
968 class Handler:
969 def handle(self, operation, key, data, src, dst):
970 self.operation = operation
971 self.key = key
972 self.data = data
973 self.src = src
974 self.dst = dst
975
976 handler = Handler()
977 doctype = document.doctype
978 entity = doctype.entities['smile']
979 entity.setUserData("key", "data", handler)
980
981 if clone_document:
982 # clone Document
983 clone = document.cloneNode(deep=True)
984
985 self.assertEqual(clone.documentElement.firstChild.wholeText,
986 "Don't let entities make you frown ☺")
987 operation = xml.dom.UserDataHandler.NODE_IMPORTED
988 dst = clone.doctype.entities['smile']
989 else:
990 # clone DocumentType
991 with support.swap_attr(doctype, 'ownerDocument', None):
992 clone = doctype.cloneNode(deep=True)
993
994 operation = xml.dom.UserDataHandler.NODE_CLONED
995 dst = clone.entities['smile']
996
997 self.assertEqual(handler.operation, operation)
998 self.assertEqual(handler.key, "key")
999 self.assertEqual(handler.data, "data")
1000 self.assertIs(handler.src, entity)
1001 self.assertIs(handler.dst, dst)
1002
1003 def testCloneNodeEntity(self):
1004 self.check_clone_node_entity(False)

Callers 1

testCloneNodeEntityMethod · 0.95

Calls 7

setUserDataMethod · 0.80
HandlerClass · 0.70
parseStringMethod · 0.45
stripMethod · 0.45
cloneNodeMethod · 0.45
assertEqualMethod · 0.45
assertIsMethod · 0.45

Tested by

no test coverage detected