1.1 --- a/tests/soap_test.py Sun Sep 30 23:23:40 2007 +0000
1.2 +++ b/tests/soap_test.py Sun Sep 30 23:23:48 2007 +0000
1.3 @@ -30,6 +30,15 @@
1.4 </env:Envelope>"""
1.5
1.6 req = libxml2dom.soap.parseString(request)
1.7 +assert req.methodName == "chargeReservation"
1.8 +assert req.parameterValues == [
1.9 + [("code", "FT35ZBQ")],
1.10 + [("name", u"Åke Jógvan Øyvind"), ("number", "123456789099999"), ("expiration", "2005-02")]
1.11 + ]
1.12 +assert req.fault is None
1.13 +print "Method name:", req.methodName
1.14 +print "Parameter values:", req.parameterValues
1.15 +print "Fault:", req.fault
1.16
1.17 response = """<?xml version='1.0' encoding='iso-8859-1'?>
1.18 <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" >
1.19 @@ -52,6 +61,12 @@
1.20 </env:Envelope>"""
1.21
1.22 resp = libxml2dom.soap.parseString(response)
1.23 +assert resp.methodName == "chargeReservationResponse"
1.24 +assert resp.parameterValues == [("code", "FT35ZBQ"), ("viewAt", "http://travelcompany.example.org/reservations?code=FT35ZBQ")]
1.25 +assert resp.fault is None
1.26 +print "Method name:", resp.methodName
1.27 +print "Parameter values:", resp.parameterValues
1.28 +print "Fault:", resp.fault
1.29
1.30 response2 = """<?xml version='1.0' encoding='iso-8859-1'?>
1.31 <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" >
1.32 @@ -77,6 +92,15 @@
1.33 </env:Envelope>"""
1.34
1.35 resp2 = libxml2dom.soap.parseString(response2)
1.36 +assert resp2.methodName == "chargeReservationResponse"
1.37 +assert resp2.parameterValues == [
1.38 + ("result", "m:status"), ("status", "confirmed"), ("code", "FT35ZBQ"),
1.39 + ("viewAt", "http://travelcompany.example.org/reservations?code=FT35ZBQ")
1.40 + ]
1.41 +assert resp2.fault is None
1.42 +print "Method name:", resp2.methodName
1.43 +print "Parameter values:", resp2.parameterValues
1.44 +print "Fault:", resp2.fault
1.45
1.46 failed = """<?xml version='1.0' encoding='iso-8859-1'?>
1.47 <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
1.48 @@ -105,5 +129,12 @@
1.49 </env:Envelope>"""
1.50
1.51 f = libxml2dom.soap.parseString(failed)
1.52 +assert f.methodName is None
1.53 +assert f.parameterValues == []
1.54 +assert f.fault.code == "env:Sender"
1.55 +assert f.fault.subcode == "rpc:BadArguments"
1.56 +print "Method name:", f.methodName
1.57 +print "Parameter values:", f.parameterValues
1.58 +print "Fault code:", f.fault.code
1.59
1.60 # vim: tabstop=4 expandtab shiftwidth=4
2.1 --- a/tests/xmlrpc_test.py Sun Sep 30 23:23:40 2007 +0000
2.2 +++ b/tests/xmlrpc_test.py Sun Sep 30 23:23:48 2007 +0000
2.3 @@ -2,6 +2,8 @@
2.4
2.5 import libxml2dom.xmlrpc
2.6
2.7 +# Some examples from the specification.
2.8 +
2.9 request = """<?xml version="1.0"?>
2.10 <methodCall>
2.11 <methodName>examples.getStateName</methodName>
2.12 @@ -13,6 +15,12 @@
2.13 </methodCall>"""
2.14
2.15 req = libxml2dom.xmlrpc.parseString(request)
2.16 +assert req.methodName == "examples.getStateName"
2.17 +assert req.parameterValues == [41]
2.18 +assert req.fault is None
2.19 +print "Method name:", req.methodName
2.20 +print "Parameter values:", req.parameterValues
2.21 +print "Fault:", req.fault
2.22
2.23 response = """<?xml version="1.0"?>
2.24 <methodResponse>
2.25 @@ -24,6 +32,12 @@
2.26 </methodResponse>"""
2.27
2.28 resp = libxml2dom.xmlrpc.parseString(response)
2.29 +assert resp.methodName is None
2.30 +assert resp.parameterValues == ["South Dakota"]
2.31 +assert resp.fault is None
2.32 +print "Method name:", resp.methodName
2.33 +print "Parameter values:", resp.parameterValues
2.34 +print "Fault:", resp.fault
2.35
2.36 failed = """<?xml version="1.0"?>
2.37 <methodResponse>
2.38 @@ -44,5 +58,54 @@
2.39 </methodResponse>"""
2.40
2.41 f = libxml2dom.xmlrpc.parseString(failed)
2.42 +assert f.methodName is None
2.43 +assert f.parameterValues == []
2.44 +assert f.fault.code == "4"
2.45 +assert f.fault.reason == "Too many parameters."
2.46 +print "Method name:", f.methodName
2.47 +print "Parameter values:", f.parameterValues
2.48 +print "Fault code:", f.fault.code
2.49 +
2.50 +# Python Package Index examples.
2.51 +
2.52 +search = """<?xml version="1.0"?>
2.53 +<methodCall>
2.54 + <methodName>search</methodName>
2.55 + <params>
2.56 + <param>
2.57 + <value>
2.58 + <struct>
2.59 + <member>
2.60 + <name>name</name>
2.61 + <value><string>libxml2dom</string></value>
2.62 + </member>
2.63 + <member>
2.64 + <name>description</name>
2.65 + <value>XML</value>
2.66 + </member>
2.67 + </struct>
2.68 + </value>
2.69 + </param>
2.70 + <param>
2.71 + <value>
2.72 + <string>and</string>
2.73 + </value>
2.74 + </param>
2.75 + </params>
2.76 +</methodCall>"""
2.77 +
2.78 +s = libxml2dom.xmlrpc.parseString(search)
2.79 +assert s.methodName == "search"
2.80 +assert s.parameterValues == [[("name", "libxml2dom"), ("description", "XML")], "and"]
2.81 +assert s.parameterItems == [
2.82 + (None, [("name", "libxml2dom"), ("description", "XML")]),
2.83 + (None, "and")
2.84 + ]
2.85 +assert s.fault is None
2.86 +print "Method name:", s.methodName
2.87 +print "Parameter values:", s.parameterValues
2.88 +print "Parameter items:", s.parameterItems
2.89 +print "Parameter map:", s.parameterMap
2.90 +print "Fault:", s.fault
2.91
2.92 # vim: tabstop=4 expandtab shiftwidth=4