1.1 --- a/tests/soap_test.py Sun Sep 14 02:30:58 2008 +0200
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,145 +0,0 @@
1.4 -#!/usr/bin/env python
1.5 -# -*- coding: iso-8859-15 -*-
1.6 -
1.7 -import libxml2dom.soap
1.8 -
1.9 -request = """<?xml version='1.0' encoding='iso-8859-1'?>
1.10 -<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" >
1.11 - <env:Header>
1.12 - <t:transaction
1.13 - xmlns:t="http://thirdparty.example.org/transaction"
1.14 - env:encodingStyle="http://example.com/encoding"
1.15 - env:mustUnderstand="true" >5</t:transaction>
1.16 - </env:Header>
1.17 - <env:Body>
1.18 - <m:chargeReservation
1.19 - env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"
1.20 - xmlns:m="http://travelcompany.example.org/">
1.21 - <m:reservation xmlns:m="http://travelcompany.example.org/reservation">
1.22 - <m:code>FT35ZBQ</m:code>
1.23 - </m:reservation>
1.24 - <o:creditCard xmlns:o="http://mycompany.example.com/financial">
1.25 - <n:name xmlns:n="http://mycompany.example.com/employees">
1.26 - Ĺke Jógvan Řyvind
1.27 - </n:name>
1.28 - <o:number>123456789099999</o:number>
1.29 - <o:expiration>2005-02</o:expiration>
1.30 - </o:creditCard>
1.31 - </m:chargeReservation>
1.32 - </env:Body>
1.33 -</env:Envelope>"""
1.34 -
1.35 -req = libxml2dom.soap.parseString(request)
1.36 -assert req.method.methodName == "chargeReservation"
1.37 -assert req.method.parameterValues == [
1.38 - ("reservation", [("code", "FT35ZBQ")]),
1.39 - ("creditCard", [("name", u"Ĺke Jógvan Řyvind"),
1.40 - ("number", "123456789099999"),
1.41 - ("expiration", "2005-02")
1.42 - ])
1.43 - ]
1.44 -assert req.fault is None
1.45 -print "Method name:", req.method.methodName
1.46 -print "Parameter values:", req.method.parameterValues
1.47 -print "Fault:", req.fault
1.48 -
1.49 -response = """<?xml version='1.0' encoding='iso-8859-1'?>
1.50 -<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" >
1.51 - <env:Header>
1.52 - <t:transaction
1.53 - xmlns:t="http://thirdparty.example.org/transaction"
1.54 - env:encodingStyle="http://example.com/encoding"
1.55 - env:mustUnderstand="true">5</t:transaction>
1.56 - </env:Header>
1.57 - <env:Body>
1.58 - <m:chargeReservationResponse
1.59 - env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"
1.60 - xmlns:m="http://travelcompany.example.org/">
1.61 - <m:code>FT35ZBQ</m:code>
1.62 - <m:viewAt>
1.63 - http://travelcompany.example.org/reservations?code=FT35ZBQ
1.64 - </m:viewAt>
1.65 - </m:chargeReservationResponse>
1.66 - </env:Body>
1.67 -</env:Envelope>"""
1.68 -
1.69 -resp = libxml2dom.soap.parseString(response)
1.70 -assert resp.method.methodName == "chargeReservationResponse"
1.71 -assert resp.method.parameterValues == [
1.72 - ("code", "FT35ZBQ"),
1.73 - ("viewAt", "http://travelcompany.example.org/reservations?code=FT35ZBQ")
1.74 - ]
1.75 -assert resp.fault is None
1.76 -print "Method name:", resp.method.methodName
1.77 -print "Parameter values:", resp.method.parameterValues
1.78 -print "Fault:", resp.fault
1.79 -
1.80 -response2 = """<?xml version='1.0' encoding='iso-8859-1'?>
1.81 -<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" >
1.82 - <env:Header>
1.83 - <t:transaction
1.84 - xmlns:t="http://thirdparty.example.org/transaction"
1.85 - env:encodingStyle="http://example.com/encoding"
1.86 - env:mustUnderstand="true">5</t:transaction>
1.87 - </env:Header>
1.88 - <env:Body>
1.89 - <m:chargeReservationResponse
1.90 - env:encodingStyle="http://www.w3.org/2003/05/soap-encoding"
1.91 - xmlns:rpc="http://www.w3.org/2003/05/soap-rpc"
1.92 - xmlns:m="http://travelcompany.example.org/">
1.93 - <rpc:result>m:status</rpc:result>
1.94 - <m:status>confirmed</m:status>
1.95 - <m:code>FT35ZBQ</m:code>
1.96 - <m:viewAt>
1.97 - http://travelcompany.example.org/reservations?code=FT35ZBQ
1.98 - </m:viewAt>
1.99 - </m:chargeReservationResponse>
1.100 - </env:Body>
1.101 -</env:Envelope>"""
1.102 -
1.103 -resp2 = libxml2dom.soap.parseString(response2)
1.104 -assert resp2.method.methodName == "chargeReservationResponse"
1.105 -assert resp2.method.parameterValues == [
1.106 - ("result", "m:status"),
1.107 - ("status", "confirmed"),
1.108 - ("code", "FT35ZBQ"),
1.109 - ("viewAt", "http://travelcompany.example.org/reservations?code=FT35ZBQ")
1.110 - ]
1.111 -assert resp2.fault is None
1.112 -print "Method name:", resp2.method.methodName
1.113 -print "Parameter values:", resp2.method.parameterValues
1.114 -print "Fault:", resp2.fault
1.115 -
1.116 -failed = """<?xml version='1.0' encoding='iso-8859-1'?>
1.117 -<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope"
1.118 - xmlns:rpc='http://www.w3.org/2003/05/soap-rpc'>
1.119 - <env:Body>
1.120 - <env:Fault>
1.121 - <env:Code>
1.122 - <env:Value>env:Sender</env:Value>
1.123 - <env:Subcode>
1.124 - <env:Value>rpc:BadArguments</env:Value>
1.125 - </env:Subcode>
1.126 - </env:Code>
1.127 - <env:Reason>
1.128 - <env:Text xml:lang="en-US">Processing error</env:Text>
1.129 - <env:Text xml:lang="cs">Chyba zpracování</env:Text>
1.130 - </env:Reason>
1.131 - <env:Detail>
1.132 - <e:myFaultDetails
1.133 - xmlns:e="http://travelcompany.example.org/faults">
1.134 - <e:message>Name does not match card number</e:message>
1.135 - <e:errorcode>999</e:errorcode>
1.136 - </e:myFaultDetails>
1.137 - </env:Detail>
1.138 - </env:Fault>
1.139 - </env:Body>
1.140 -</env:Envelope>"""
1.141 -
1.142 -f = libxml2dom.soap.parseString(failed)
1.143 -assert f.method is None
1.144 -assert f.fault.code == "env:Sender"
1.145 -assert f.fault.subcode == "rpc:BadArguments"
1.146 -print "Fault code:", f.fault.code
1.147 -
1.148 -# vim: tabstop=4 expandtab shiftwidth=4