MCPcopy Index your code
hub / github.com/RustPython/RustPython / check_clone_node_entity

Method check_clone_node_entity

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

Source from the content-addressed store, hash-verified

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

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