aboutsummaryrefslogtreecommitdiff
path: root/libxml2-2.9.10/python/tests/cutnpaste.py
diff options
context:
space:
mode:
authorWojtek Kosior <wk@koszkonutek-tmp.pl.eu.org>2021-04-30 18:47:09 +0200
committerWojtek Kosior <wk@koszkonutek-tmp.pl.eu.org>2021-04-30 18:47:09 +0200
commit35a201cc8ef0c3f5b2df88d2e528aabee1048348 (patch)
tree902dae955480e19f4498dbe4964619fc91d09b06 /libxml2-2.9.10/python/tests/cutnpaste.py
downloadxml-backup-restore-master.tar.gz
xml-backup-restore-master.zip
Initial/Final commitHEADmaster
Diffstat (limited to 'libxml2-2.9.10/python/tests/cutnpaste.py')
-rwxr-xr-xlibxml2-2.9.10/python/tests/cutnpaste.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/libxml2-2.9.10/python/tests/cutnpaste.py b/libxml2-2.9.10/python/tests/cutnpaste.py
new file mode 100755
index 0000000..7787246
--- /dev/null
+++ b/libxml2-2.9.10/python/tests/cutnpaste.py
@@ -0,0 +1,48 @@
+#!/usr/bin/python -u
+import sys
+import libxml2
+
+# Memory debug specific
+libxml2.debugMemory(1)
+
+#
+# Testing XML document serialization
+#
+source = libxml2.parseDoc("""<?xml version="1.0"?>
+<root xmlns:foo="http://example.org/foo"
+ xmlns:bar="http://example.org/bar">
+<include xmlns="http://example.org/include">
+<fragment><foo:elem bar="tricky"/></fragment>
+</include>
+</root>
+""")
+
+target = libxml2.parseDoc("""<?xml version="1.0"?>
+<root xmlns:foobar="http://example.org/bar"/>""")
+
+fragment = source.xpathEval("//*[name()='fragment']")[0]
+dest = target.getRootElement()
+
+# do a cut and paste operation
+fragment.unlinkNode()
+dest.addChild(fragment)
+# do the namespace fixup
+dest.reconciliateNs(target)
+
+# The source tree can be freed at that point
+source.freeDoc()
+
+# check the resulting tree
+str = dest.serialize()
+if str != """<root xmlns:foobar="http://example.org/bar" xmlns:default="http://example.org/include" xmlns:foo="http://example.org/foo"><default:fragment><foo:elem bar="tricky"/></default:fragment></root>""":
+ print("reconciliateNs() failed")
+ sys.exit(1)
+target.freeDoc()
+
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+ print("OK")
+else:
+ print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
+ libxml2.dumpMemory()