# HG changeset patch
# User paulb
# Date 1191194628 0
# Node ID fe6ce4bd69901a01acbd4fe00457d394e6773422
# Parent d1afa576a419eed5769ff87ced9bd1556bbc020c
[project @ 2007-09-30 23:23:48 by paulb]
Enhanced the SOAP and XML-RPC tests.
diff -r d1afa576a419 -r fe6ce4bd6990 tests/soap_test.py
--- a/tests/soap_test.py Sun Sep 30 23:23:40 2007 +0000
+++ b/tests/soap_test.py Sun Sep 30 23:23:48 2007 +0000
@@ -30,6 +30,15 @@
"""
req = libxml2dom.soap.parseString(request)
+assert req.methodName == "chargeReservation"
+assert req.parameterValues == [
+ [("code", "FT35ZBQ")],
+ [("name", u"Åke Jógvan Øyvind"), ("number", "123456789099999"), ("expiration", "2005-02")]
+ ]
+assert req.fault is None
+print "Method name:", req.methodName
+print "Parameter values:", req.parameterValues
+print "Fault:", req.fault
response = """
@@ -52,6 +61,12 @@
"""
resp = libxml2dom.soap.parseString(response)
+assert resp.methodName == "chargeReservationResponse"
+assert resp.parameterValues == [("code", "FT35ZBQ"), ("viewAt", "http://travelcompany.example.org/reservations?code=FT35ZBQ")]
+assert resp.fault is None
+print "Method name:", resp.methodName
+print "Parameter values:", resp.parameterValues
+print "Fault:", resp.fault
response2 = """
@@ -77,6 +92,15 @@
"""
resp2 = libxml2dom.soap.parseString(response2)
+assert resp2.methodName == "chargeReservationResponse"
+assert resp2.parameterValues == [
+ ("result", "m:status"), ("status", "confirmed"), ("code", "FT35ZBQ"),
+ ("viewAt", "http://travelcompany.example.org/reservations?code=FT35ZBQ")
+ ]
+assert resp2.fault is None
+print "Method name:", resp2.methodName
+print "Parameter values:", resp2.parameterValues
+print "Fault:", resp2.fault
failed = """
"""
f = libxml2dom.soap.parseString(failed)
+assert f.methodName is None
+assert f.parameterValues == []
+assert f.fault.code == "env:Sender"
+assert f.fault.subcode == "rpc:BadArguments"
+print "Method name:", f.methodName
+print "Parameter values:", f.parameterValues
+print "Fault code:", f.fault.code
# vim: tabstop=4 expandtab shiftwidth=4
diff -r d1afa576a419 -r fe6ce4bd6990 tests/xmlrpc_test.py
--- a/tests/xmlrpc_test.py Sun Sep 30 23:23:40 2007 +0000
+++ b/tests/xmlrpc_test.py Sun Sep 30 23:23:48 2007 +0000
@@ -2,6 +2,8 @@
import libxml2dom.xmlrpc
+# Some examples from the specification.
+
request = """
examples.getStateName
@@ -13,6 +15,12 @@
"""
req = libxml2dom.xmlrpc.parseString(request)
+assert req.methodName == "examples.getStateName"
+assert req.parameterValues == [41]
+assert req.fault is None
+print "Method name:", req.methodName
+print "Parameter values:", req.parameterValues
+print "Fault:", req.fault
response = """
@@ -24,6 +32,12 @@
"""
resp = libxml2dom.xmlrpc.parseString(response)
+assert resp.methodName is None
+assert resp.parameterValues == ["South Dakota"]
+assert resp.fault is None
+print "Method name:", resp.methodName
+print "Parameter values:", resp.parameterValues
+print "Fault:", resp.fault
failed = """
@@ -44,5 +58,54 @@
"""
f = libxml2dom.xmlrpc.parseString(failed)
+assert f.methodName is None
+assert f.parameterValues == []
+assert f.fault.code == "4"
+assert f.fault.reason == "Too many parameters."
+print "Method name:", f.methodName
+print "Parameter values:", f.parameterValues
+print "Fault code:", f.fault.code
+
+# Python Package Index examples.
+
+search = """
+
+ search
+
+
+
+
+
+ name
+ libxml2dom
+
+
+ description
+ XML
+
+
+
+
+
+
+ and
+
+
+
+"""
+
+s = libxml2dom.xmlrpc.parseString(search)
+assert s.methodName == "search"
+assert s.parameterValues == [[("name", "libxml2dom"), ("description", "XML")], "and"]
+assert s.parameterItems == [
+ (None, [("name", "libxml2dom"), ("description", "XML")]),
+ (None, "and")
+ ]
+assert s.fault is None
+print "Method name:", s.methodName
+print "Parameter values:", s.parameterValues
+print "Parameter items:", s.parameterItems
+print "Parameter map:", s.parameterMap
+print "Fault:", s.fault
# vim: tabstop=4 expandtab shiftwidth=4