1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-10-28 23:14:57 +03:00

added more informations in the libxml2-python package including docs.

* configure.in libxml.spec.in python/Makefile.am python/TODO
  python/generator.py python/libxml2class.txt: added more informations
  in the libxml2-python package including docs. Slightly changed
  the class hierarchy
* python/tests/*: added basic regression tests infrastructure too
Daniel
This commit is contained in:
Daniel Veillard
2002-02-02 09:17:16 +00:00
parent a7340c830e
commit 253aa2c33b
14 changed files with 584 additions and 20 deletions

26
python/tests/Makefile.am Normal file
View File

@@ -0,0 +1,26 @@
EXAMPLE_DIR = $(prefix)/share/doc/libxml2-python-$(LIBXML_VERSION)/examples
TESTS= \
tst.py \
tstxpath.py \
xpathext.py \
xpath.py
XMLS= \
tst.xml
EXTRA_DIST = $(TESTS) $(XMLS)
if WITH_PYTHON
tests: $(TESTS)
-@(CLASSPATH=".." ; export CLASSPATH; \
for test in $(TESTS) ; do echo "-- $$test" ; $(PYTHON) $$test ; done)
else
tests:
endif
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(EXAMPLE_DIR)
-(for test in $(TESTS) $(XMLS); \
do @INSTALL@ -m 0644 $$test $(DESTDIR)$(EXAMPLE_DIR) ; done)

10
python/tests/tst.py Executable file
View File

@@ -0,0 +1,10 @@
#!/usr/bin/python -u
import libxml2
doc = libxml2.parseFile("tst.xml")
print doc.name
root = doc.children
print root.name
child = root.children
print child.name
doc.freeDoc()

1
python/tests/tst.xml Normal file
View File

@@ -0,0 +1 @@
<doc><foo>bar</foo></doc>

29
python/tests/tstxpath.py Executable file
View File

@@ -0,0 +1,29 @@
#!/usr/bin/python -u
import libxml2
def foo(x):
# print "foo called %s" % (x)
return x + 1
def bar(x):
# print "foo called %s" % (x)
return "%s" % (x + 1)
doc = libxml2.parseFile("tst.xml")
ctxt = doc.xpathNewContext()
res = ctxt.xpathEval("//*")
print res
libxml2.registerXPathFunction(ctxt._o, "foo", None, foo)
libxml2.registerXPathFunction(ctxt._o, "bar", None, bar)
i = 10000
while i > 0:
res = ctxt.xpathEval("foo(1)")
i = i - 1
print res
i = 10000
while i > 0:
res = ctxt.xpathEval("bar(1)")
i = i - 1
print res
doc.freeDoc()

21
python/tests/xpath.py Executable file
View File

@@ -0,0 +1,21 @@
#!/usr/bin/python -u
#
# this test exercise the XPath basic engine, parser, etc, and
# allows to detect memory leaks
#
import libxml2
doc = libxml2.parseFile("tst.xml")
print doc
i = 1000
while i > 0:
doc = libxml2.parseFile("tst.xml")
ctxt = doc.xpathNewContext()
res = ctxt.xpathEval("//*")
doc.freeDoc()
i = i -1
doc = libxml2.parseFile("tst.xml")
ctxt = doc.xpathNewContext()
res = ctxt.xpathEval("//*")
print res
doc.freeDoc()

33
python/tests/xpathext.py Executable file
View File

@@ -0,0 +1,33 @@
#!/usr/bin/python -u
#
# This test exercise the extension of the XPath engine with
# functions defined in Python.
#
import libxml2
def foo(x):
# print "foo called %s" % (x)
return x + 1
def bar(x):
# print "foo called %s" % (x)
return "%s" % (x + 1)
doc = libxml2.parseFile("tst.xml")
ctxt = doc.xpathNewContext()
res = ctxt.xpathEval("//*")
print res
libxml2.registerXPathFunction(ctxt._o, "foo", None, foo)
libxml2.registerXPathFunction(ctxt._o, "bar", None, bar)
i = 10000
while i > 0:
res = ctxt.xpathEval("foo(1)")
i = i - 1
print res
i = 10000
while i > 0:
res = ctxt.xpathEval("bar(1)")
i = i - 1
print res
doc.freeDoc()