Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Loading…

rpclib-2.4.4-beta commits #109

Merged
merged 16 commits into from
Commits on Oct 25, 2011
  1. @plq

    add Time primitive.

    plq authored
  2. @plq

    roadmap reword

    plq authored
  3. @plq

    faq reword

    plq authored
  4. @plq
  5. @plq
  6. @plq

    remove duplicate points

    plq authored
  7. @plq

    changelog update.

    plq authored
Commits on Oct 28, 2011
  1. @mardiros @plq

    issue #106

    mardiros authored plq committed
  2. @plq
  3. @plq

    Merge branch 'multi_port'

    plq authored
  4. @plq

    changelog update

    plq authored
  5. @plq
  6. @plq
  7. @plq

    examples reorg

    plq authored
  8. @plq

    changelog update

    plq authored
  9. @plq

    changelog update

    plq authored
This page is out of date. Refresh to see the latest.
View
7 CHANGELOG.rst
@@ -2,6 +2,13 @@
Changelog
=========
+rpclib-2.4.4-beta
+-----------------
+ * Time primitive was implemented.
+ * Fix for multiple ports was integrated.
+ * Added http cookie authentication example with suds.
+ * Full change log: https://github.com/arskom/rpclib/pull/109
+
rpclib-2.4.3-beta
-----------------
* Many issues with 'soft' validation was fixed.
View
8 ROADMAP.rst
@@ -17,7 +17,7 @@ touching most of the codebase: A proper lazily-evaluated pipeline for request
processing.
Currently, every artifact of the rpc processing pipeline remain in memory for the
-entire life time of the context object. This also causes to have the whole message
+entire life time of the context object. This also results in having the whole message
in memory while processing. While this is not a problem for small messages, which is
rpclib's main target, it limits rpclib capabilities.
@@ -52,10 +52,15 @@ Soap to JsonRpc.
Miscellanous
------------
+First and foremost:
+
+ Fix the tests that fail due to api changes!
+
The following would definitely be nice to have, but are just modules that should
not cause a change in unrelated areas of rpclib. Those would increment the minor
version number of the Rpclib version once implemented.
+* Support for polymorphism in XML Schema.
* Support for the JsonObject (à la XmlObject) and JsonRpc protocols.
* Support for the JsonSchema interface document standard.
* Support for the Thrift binary protocol.
@@ -72,4 +77,3 @@ version number of the Rpclib version once implemented.
* Support addressing (routing) extensions to Soap
* Add WSDL Parsing support to Soap client
* Reflect transport and protocol pairs other than Soap/Http to the Wsdl.
-* Fix the tests that fail due to api changes.
View
3  doc/source/comparison.rst
@@ -22,11 +22,10 @@ Discussion thread: https://answers.launchpad.net/ladon/+question/171664
The main motive for designing JSON-WSP was the need for a JSON-based RPC
protocol with a service description specification with built-in service /
method documentation.
-* Supports Python 3.x.
+* Supports both Python 2 and Python 3.
* Auto-generates human-readable API documentation.
(example: http://ladonize.org/python-demos/AlbumService) In Rpclib, you need
to do with the ugliness of a raw wsdl document.
-* Supports both Python 2 and Python 3.
* Does not support ZeroMQ.
* Uses standard python tools for xml parsing which is good for pure-python
deployments. Rpclib uses lxml, due to its excellent namespace support and
View
16 doc/source/faq.rst
@@ -8,19 +8,24 @@ Frequently asked questions about rpclib and related libraries.
Does rpclib support the SOAP 1.2 standard?
==========================================
-Sort answer: No. Long answer: Nope.
+**Short answer:** No.
+
+**Long answer:** Nope.
Patches are welcome.
How do I implement a predefined WSDL?
=====================================
-This is not a strength of rpclib, which is more oriented toward implementing
-services from scratch. It does not have any functionality to parse an existing
-WSDL document to produce the necessary Python classes and method stubs.
+**Short answer:** By hand.
+
+**Long answer:** This is not a strength of rpclib, which is more oriented toward
+implementing services from scratch. It does not have any functionality to parse
+an existing WSDL document to produce the necessary Python classes and method
+stubs.
Patches are welcome. You can start by adapting the WSDL parser from
-`RSL <http://rsl.sf.net>`.
+`RSL <http://rsl.sf.net>`_.
Is it possible to use other decorators with @rpc/@srpc?
=======================================================
@@ -76,4 +81,3 @@ How do I alter the behaviour of a user method without using decorators?
``ctx.descriptor.function`` contains the handle to the original function. You
can set that attribute to arbitrary callables to prevent the original user
method from running.
-
View
0  examples/authenticate/client_suds.py → examples/authentication/client_suds.py
File renamed without changes
View
0  examples/cookie_authenticate/client_suds.py → examples/authentication/http_cookie/client_suds.py
File renamed without changes
View
0  examples/cookie_authenticate/server_soap.py → examples/authentication/http_cookie/server_soap.py
File renamed without changes
View
0  examples/authenticate/server_soap.py → examples/authentication/server_soap.py
File renamed without changes
View
39 src/rpclib/interface/wsdl/wsdl11.py
@@ -222,7 +222,8 @@ def build_interface_document(self, url):
cb_binding = None
for s in self.services:
- cb_binding = self.add_bindings_for_methods(s, root, service_name)
+ cb_binding = self.add_bindings_for_methods(s, root, service_name,
+ cb_binding)
if self.app.transport is None:
raise Exception("You must set the 'transport' property of the "
@@ -396,20 +397,11 @@ def add_messages_for_methods(self, service, root, messages):
fault.get_type_name())
def add_bindings_for_methods(self, service, root, service_name,
- cb_binding=None):
+ cb_binding):
pref_tns = self.get_namespace_prefix(service.get_tns())
- def inner(binding,transport):
- if service._has_callbacks():
- if cb_binding is None:
- cb_binding = etree.SubElement(root, '{%s}binding' % _ns_wsdl)
- cb_binding.set('name', '%sCallback' % service_name)
- cb_binding.set('type', 'typens:%sCallback' % service_name)
-
- soap_binding = etree.SubElement(cb_binding, '{%s}binding' % _ns_soap)
- soap_binding.set('transport', transport)
-
+ def inner(binding):
for method in service.public_methods.values():
operation = etree.Element('{%s}operation' % _ns_wsdl)
operation.set('name', method.name)
@@ -524,20 +516,19 @@ def inner(binding,transport):
transport = etree.SubElement(binding, '{%s}binding' % _ns_soap)
transport.set('style', 'document')
- inner(binding,transport)
+ inner(binding)
else:
- # there is only an unamed port, let's call it has it's service.
- #binding_name = self._get_binding_name(service_name)
- # create binding nodes
- binding = etree.SubElement(root, '{%s}binding' % _ns_wsdl)
- binding.set('name', service_name)
- binding.set('type', '%s:%s'% (pref_tns, service_name))
-
- transport = etree.SubElement(binding, '{%s}binding' % _ns_soap)
- transport.set('style', 'document')
+ # here is the default port.
+ if cb_binding is None:
+ cb_binding = etree.SubElement(root, '{%s}binding' % _ns_wsdl)
+ cb_binding.set('name', service_name)
+ cb_binding.set('type', '%s:%s'% (pref_tns, service_name))
+
+ transport = etree.SubElement(cb_binding, '{%s}binding' % _ns_soap)
+ transport.set('style', 'document')
+ transport.set('transport', self.app.transport)
- inner(binding,transport)
-
+ inner(cb_binding)
return cb_binding
View
15 src/rpclib/model/binary.py
@@ -57,23 +57,12 @@ def to_string_iterable(cls, value):
@classmethod
@nillable_string
def to_base64(cls, value):
- ostream = StringIO()
- istream = StringIO(''.join(value))
- base64.encode(istream, ostream)
- ostream.seek(0)
-
- return [ostream.read()]
+ return [base64.b64encode(''.join(value))]
@classmethod
@nillable_string
def from_base64(cls, value):
- istream = StringIO(''.join(value))
- ostream = StringIO()
-
- base64.decode(istream, ostream)
- ostream.seek(0)
-
- return [ostream.read()]
+ return [base64.b64decode(''.join(value))]
class Attachment(ModelBase):
"""**DEPRECATED!** Use ByteArray instead."""
View
106 src/rpclib/model/primitive.py
@@ -23,16 +23,13 @@
import math
import pytz
import decimal
+import datetime
import rpclib.const.xml_ns
import cPickle as pickle
from collections import deque
-from datetime import date
-from datetime import datetime
-from datetime import timedelta
-
from lxml import etree
from pytz import FixedOffset
@@ -51,6 +48,7 @@
_utc_re = re.compile(_datetime_pattern + 'Z')
_offset_re = re.compile(_datetime_pattern + _offset_pattern)
_date_re = re.compile(_date_pattern)
+_time_re = re.compile(_time_pattern)
_duration_re = re.compile(
r'(?P<sign>-?)'
r'P'
@@ -106,14 +104,15 @@ def from_string(cls, string):
raise ValidationError(string)
class Unicode(SimpleModel):
- """The type to represent human-readable data. Its native format is unicode.
- Currently, it can read from only utf8-compatible encodings.
+ """The type to represent human-readable data. Its native format is `unicode`.
+ or `str` with given encoding.
"""
__type_name__ = 'string'
class Attributes(SimpleModel.Attributes):
- """The class that holds the constraints for the given type."""
+ """Customizable attributes of the :class:`rpclib.model.primitive.Unicode`
+ type."""
min_len = 0
"""Minimum length of string. Can be set to any positive integer"""
@@ -139,10 +138,7 @@ def __new__(cls, *args, **kwargs):
@classmethod
@nillable_string
def from_string(cls, value):
- try:
- return value.decode('utf8')
- except:
- return value
+ return value
@classmethod
@nillable_string
@@ -166,20 +162,36 @@ def validate_string(cls, value):
re.match(cls.Attributes.pattern, value) is not None)
)
-class String(Unicode):
+
+# the undocumented string type, for those who want not-so-implicit encoding
+# conversions.
+class _String(Unicode):
+ class Attributes(Unicode.Attributes):
+ """Customizable attributes of the :class:`rpclib.model.primitive.String`
+ type."""
+
+ encoding = 'utf8'
+ """The encoding of the passed `str` object."""
+
@classmethod
@nillable_string
def from_string(cls, value):
- return str(value)
+ retval = value
+ if cls.Attributes.encoding is not None:
+ retval = value.decode(cls.Attributes.encoding)
+ return retval
@classmethod
@nillable_string
def to_string(cls, value):
- return str(value)
+ retval = value
+ if cls.Attribute.encoding is not None:
+ retval = value.encode(cls.Attributes.encoding)
+ return retval
String = Unicode # FIXME: the string/unicode separation needs to be tested
-class AnyUri(String):
+class AnyUri(Unicode):
"""This is an xml schema type with is a special kind of String."""
__type_name__ = 'anyURI'
@@ -340,8 +352,40 @@ class UnsignedInteger8(Integer):
__type_name__ = 'unsignedByte'
__length__ = 8
+class Time(SimpleModel):
+ """Just that, Time. No time zone support.
+
+ Native type is :class:`datetime.time`.
+ """
+
+ __type_name__ = 'time'
+
+ @classmethod
+ @nillable_string
+ def to_string(cls, value):
+ """Returns ISO formatted dates."""
+
+ return value.isoformat()
+
+ @classmethod
+ @nillable_string
+ def from_string(cls, string):
+ """Expects ISO formatted dates."""
+
+ match = _time_re.match(string)
+ if match is None:
+ raise ValidationError(string)
+
+ fields = match.groupdict(0)
+
+ return datetime.time(int(fields['hr']), int(fields['min']),
+ int(fields['sec']), int(fields.get("sec_frac", '.')[1:]))
+
class Date(SimpleModel):
- """Just that, Date. It also supports time zones."""
+ """Just that, Date. It also supports time zones.
+
+ Native type is :class:`datetime.date`.
+ """
__type_name__ = 'date'
@@ -363,10 +407,12 @@ def from_string(cls, string):
fields = match.groupdict(0)
- return date(fields['year'], fields['month'], fields['day'])
+ return datetime.date(fields['year'], fields['month'], fields['day'])
class DateTime(SimpleModel):
"""A compact way to represent dates and times together. Supports time zones.
+
+ Native type is :class:`datetime.datetime`.
"""
__type_name__ = 'dateTime'
@@ -377,15 +423,21 @@ def to_string(cls, value):
@staticmethod
def parse(date_match, tz=None):
- fields = date_match.groupdict(0)
- year, month, day, hour, min, sec = [int(fields[x]) for x in
- ("year", "month", "day", "hr", "min", "sec")]
-
- # use of decimal module here (rather than float) might be better
- # here, if willing to require python 2.4 or higher
- microsec = int(float(fields.get("sec_frac", 0)) * 10 ** 6)
+ fields = date_match.groupdict()
+
+ year = int(fields.get('year'))
+ month = int(fields.get('month'))
+ day = int(fields.get('day'))
+ hour = int(fields.get('hr'))
+ min = int(fields.get('min'))
+ sec = int(fields.get('sec'))
+ microsec = fields.get("sec_frac")
+ if microsec is None:
+ microsec = 0
+ else:
+ microsec = int(microsec[1:])
- return datetime(year,month,day, hour,min,sec, microsec, tz)
+ return datetime.datetime(year,month,day, hour,min,sec, microsec, tz)
@classmethod
@nillable_string
@@ -409,7 +461,7 @@ def from_string(cls, string):
# this object tries to follow ISO 8601 standard.
class Duration(SimpleModel):
- """This is how the native datetime.timedelta objects are serialized."""
+ """Native type is :class:`datetime.timedelta`."""
__type_name__ = 'duration'
@@ -430,7 +482,7 @@ def from_string(cls, string):
seconds = i
microseconds = int(1e6 * f)
- delta = timedelta(days=days, hours=hours, minutes=minutes,
+ delta = datetime.timedelta(days=days, hours=hours, minutes=minutes,
seconds=seconds, microseconds=microseconds)
if duration['sign'] == "-":
View
5 src/rpclib/model/table.py
@@ -48,6 +48,7 @@
from rpclib.model import binary
from rpclib.model import complex
+
_type_map = {
sqlalchemy.Text: primitive.String,
sqlalchemy.String: primitive.String,
@@ -63,7 +64,11 @@
sqlalchemy.LargeBinary: binary.ByteArray,
sqlalchemy.Boolean: primitive.Boolean,
sqlalchemy.DateTime: primitive.DateTime,
+ sqlalchemy.Date: primitive.Date,
+ sqlalchemy.Time: primitive.Time,
+
sqlalchemy.orm.relation: complex.Array,
+
UUID: primitive.String
}
View
204 src/rpclib/test/interop/wsi-report-rpclib.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="wsi-test-tools/common/xsl/report.xsl" type="text/xsl" ?>
-<report name="WS-I Basic Profile Conformance Report." timestamp="2011-09-19T15:13:36.767"
+<report name="WS-I Basic Profile Conformance Report." timestamp="2011-10-28T16:12:06.460"
xmlns="http://www.ws-i.org/testing/2004/07/report/"
xmlns:wsi-report="http://www.ws-i.org/testing/2004/07/report/"
xmlns:wsi-log="http://www.ws-i.org/testing/2003/03/log/"
@@ -141,7 +141,7 @@
<assertionResult id="SSBP2403" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerOutHeaderMsg">
+ <entry type="message" referenceID="{rpclib.test.interop.server}OutHeader">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
@@ -153,25 +153,25 @@
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerInHeaderMsg">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerInHeaderMsg">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerOutHeaderMsg">
+ <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerInHeaderMsg">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerInHeaderMsg">
+ <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerOutHeaderMsg">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}OutHeader">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerOutHeaderMsg">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
@@ -361,12 +361,6 @@
<assertionResult id="BP2014" result="notApplicable">
</assertionResult>
</entry>
- <entry type="operation" referenceID="return_only">
- <assertionResult id="BP2208" result="passed">
- </assertionResult>
- <assertionResult id="BP2014" result="notApplicable">
- </assertionResult>
- </entry>
<entry type="operation" referenceID="multi_param">
<assertionResult id="BP2208" result="passed">
</assertionResult>
@@ -451,139 +445,127 @@
<assertionResult id="BP2014" result="notApplicable">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_datetimeResponse">
- <assertionResult id="BP2115" result="passed">
- </assertionResult>
- <assertionResult id="BP2116" result="passed">
- </assertionResult>
- </entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_header">
- <assertionResult id="BP2115" result="passed">
- </assertionResult>
- <assertionResult id="BP2116" result="passed">
- </assertionResult>
- </entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_class_with_self_referenceResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_date_time_arrayResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}return_binary_dataResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_boolean_arrayResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}soap_exceptionResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_extension_class">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_double">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_header">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_class_with_self_referenceResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}return_onlyResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_boolean">
+ <entry type="message" referenceID="{rpclib.test.interop.server}soap_exception">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_double_arrayResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}return_invalid_dataResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}long_stringResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_string_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_float">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment_arrayResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_integer_arrayResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}getCustomMessagesMsgOut">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}multi_paramResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_any_as_dict">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_class_arrayResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_duration">
+ <entry type="message" referenceID="{rpclib.test.interop.server}complex_returnResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_classResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}non_nillable">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_class_arrayResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_array_in_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}return_invalid_dataResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}multi_paramResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class">
+ <entry type="message" referenceID="{rpclib.test.interop.server}return_other_class_arrayResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_stringResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}long_string">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_boolean_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}return_other_class_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_class_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_double_arrayResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
@@ -595,19 +577,19 @@
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_durationResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_integer">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_class">
+ <entry type="message" referenceID="{rpclib.test.interop.server}return_binary_data">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachmentResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_float">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
@@ -619,379 +601,379 @@
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}return_other_class_arrayResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}multi_param">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_boolean_arrayResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_classResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}send_out_headerResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_extension_classResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}custom_messages">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_anyResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}complex_returnResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}huge_numberResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}non_nillable">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_boolean_arrayResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_integerResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_floatResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}non_nillableResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_header">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}return_binary_dataResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_header">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_anyResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_integerResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_float_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}Fault">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class_arrayResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}do_something_else">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}documented_exceptionResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_datetimeResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_enum">
+ <entry type="message" referenceID="{rpclib.test.interop.server}do_something_elseResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment">
+ <entry type="message" referenceID="{rpclib.test.interop.server}test_emptyResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}soap_exceptionResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_durationResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_date_time_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_booleanResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}non_nillableResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}python_exceptionResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_class">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}return_invalid_data">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_boolean">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}send_out_header">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_float_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_integer">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_string_arrayResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}test_emptyResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}documented_exception">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_date_time_arrayResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}send_out_complex_headerResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_datetime">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}do_something_else">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_float_arrayResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_double">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_any">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_header">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}documented_exception">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_enum">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment_arrayResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_string">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_any">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_any_as_dictResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_classResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}return_binary_data">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_duration">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}soap_exception">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_boolean_arrayResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}return_only">
+ <entry type="message" referenceID="{rpclib.test.interop.server}test_empty">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_double_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}return_invalid_data">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_extension_classResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_class_arrayResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}do_something_elseResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachment_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}huge_number">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_complex_headerResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_float_arrayResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}send_out_header">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}test_empty">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_attachmentResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}getCustomMessagesMsgOut">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_headerResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}long_string">
+ <entry type="message" referenceID="{rpclib.test.interop.server}custom_messages">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_header">
+ <entry type="message" referenceID="{rpclib.test.interop.server}python_exception">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_any_as_dict">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_boolean_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_in_headerResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}python_exceptionResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_boolean_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_any_as_dictResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_floatResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_boolean_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}return_other_class_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}huge_number">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_string_arrayResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_integer_arrayResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_array_in_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_extension_class">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}Fault">
+ <entry type="message" referenceID="{rpclib.test.interop.server}documented_exceptionResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}multi_param">
+ <entry type="message" referenceID="{rpclib.test.interop.server}complex_return">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_doubleResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_stringResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_enumResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_booleanResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_integer_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_enumResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_simple_classResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_doubleResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}python_exception">
+ <entry type="message" referenceID="{rpclib.test.interop.server}long_stringResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_string_array">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_nested_class_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}huge_numberResponse">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_integer_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_string">
+ <entry type="message" referenceID="{rpclib.test.interop.server}send_out_headerResponse">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}echo_datetime">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_double_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
</assertionResult>
</entry>
- <entry type="message" referenceID="{rpclib.test.interop.server}complex_return">
+ <entry type="message" referenceID="{rpclib.test.interop.server}echo_date_time_array">
<assertionResult id="BP2115" result="passed">
</assertionResult>
<assertionResult id="BP2116" result="passed">
View
11 src/rpclib/test/model/test_primitive.py
@@ -23,6 +23,8 @@
from lxml import etree
from rpclib.model.complex import Array
+from rpclib.model.primitive import Date
+from rpclib.model.primitive import Time
from rpclib.model.primitive import Boolean
from rpclib.model.primitive import DateTime
from rpclib.model.primitive import Duration
@@ -56,6 +58,15 @@ def test_datetime(self):
dt = DateTime.from_xml(element)
self.assertEquals(n, dt)
+ def test_time(self):
+ n = datetime.time(1,2,3,4)
+
+ ret = Time.to_string(n)
+ self.assertEquals(ret, n.isoformat())
+
+ dt = Time.from_string(ret)
+ self.assertEquals(n, dt)
+
def test_duration_xml_duration(self):
dur = datetime.timedelta(days=5 + 30 + 365, hours=1, minutes=1,
seconds=12, microseconds=8e5)
View
2  src/rpclib/test/sort_wsdl.py
@@ -58,7 +58,7 @@ def main():
tree.getroot().append(e)
for e in tree.getroot():
- if e.tag in ("{%s}portType" % ns_wsdl, "{%s}binding" % ns_wsdl):
+ if e.tag in ("{%s}portType" % ns_wsdl, "{%s}binding" % ns_wsdl, "{%s}operation" % ns_wsdl):
nodes = []
for p in e.getchildren():
nodes.append(p)
View
332 src/rpclib/test/wsdl.xml
@@ -1214,115 +1214,115 @@
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="Application" type="tns:Application">
- <soap:binding style="document" />
- <wsdl:operation name="echo_any">
- <soap:operation soapAction="echo_any" style="document" />
- <wsdl:input name="echo_any">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <wsdl:operation name="complex_return">
+ <soap:operation soapAction="complex_return" style="document" />
+ <wsdl:input name="complex_return">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_anyResponse">
+ <wsdl:output name="complex_returnResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_any_as_dict">
- <soap:operation soapAction="echo_any_as_dict" style="document" />
- <wsdl:input name="echo_any_as_dict">
+ <wsdl:operation name="custom_messages">
+ <soap:operation soapAction="custom_messages" style="document" />
+ <wsdl:input name="custom_messages">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_any_as_dictResponse">
+ <wsdl:output name="getCustomMessagesMsgOut">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_boolean">
- <soap:operation soapAction="echo_boolean" style="document" />
- <wsdl:input name="echo_boolean">
+ <wsdl:operation name="do_something_else">
+ <soap:operation soapAction="do_something_else" style="document" />
+ <wsdl:input name="do_something_else">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_booleanResponse">
+ <wsdl:output name="do_something_elseResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_datetime">
- <soap:operation soapAction="echo_datetime" style="document" />
- <wsdl:input name="echo_datetime">
+ <wsdl:operation name="documented_exception">
+ <soap:operation soapAction="documented_exception" style="document" />
+ <wsdl:input name="documented_exception">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_datetimeResponse">
+ <wsdl:output name="documented_exceptionResponse">
<soap:body use="literal" />
</wsdl:output>
+ <wsdl:fault name="Fault">
+ <soap:fault name="Fault" use="literal" />
+ </wsdl:fault>
</wsdl:operation>
- <wsdl:operation name="echo_double">
- <soap:operation soapAction="echo_double" style="document" />
- <wsdl:input name="echo_double">
+ <wsdl:operation name="echo_any">
+ <soap:operation soapAction="echo_any" style="document" />
+ <wsdl:input name="echo_any">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_doubleResponse">
+ <wsdl:output name="echo_anyResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_duration">
- <soap:operation soapAction="echo_duration" style="document" />
- <wsdl:input name="echo_duration">
+ <wsdl:operation name="echo_any_as_dict">
+ <soap:operation soapAction="echo_any_as_dict" style="document" />
+ <wsdl:input name="echo_any_as_dict">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_durationResponse">
+ <wsdl:output name="echo_any_as_dictResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_enum">
- <soap:operation soapAction="echo_enum" style="document" />
- <wsdl:input name="echo_enum">
+ <wsdl:operation name="echo_array_in_array">
+ <soap:operation soapAction="echo_array_in_array" style="document" />
+ <wsdl:input name="echo_array_in_array">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_enumResponse">
+ <wsdl:output name="echo_array_in_arrayResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_float">
- <soap:operation soapAction="echo_float" style="document" />
- <wsdl:input name="echo_float">
+ <wsdl:operation name="echo_attachment">
+ <soap:operation soapAction="echo_attachment" style="document" />
+ <wsdl:input name="echo_attachment">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_floatResponse">
+ <wsdl:output name="echo_attachmentResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_integer">
- <soap:operation soapAction="echo_integer" style="document" />
- <wsdl:input name="echo_integer">
+ <wsdl:operation name="echo_attachment_array">
+ <soap:operation soapAction="echo_attachment_array" style="document" />
+ <wsdl:input name="echo_attachment_array">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_integerResponse">
+ <wsdl:output name="echo_attachment_arrayResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_string">
- <soap:operation soapAction="echo_string" style="document" />
- <wsdl:input name="echo_string">
+ <wsdl:operation name="echo_boolean">
+ <soap:operation soapAction="echo_boolean" style="document" />
+ <wsdl:input name="echo_boolean">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_stringResponse">
+ <wsdl:output name="echo_booleanResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- </wsdl:binding>
- <wsdl:binding name="Application" type="tns:Application">
- <soap:binding style="document" />
- <wsdl:operation name="echo_array_in_array">
- <soap:operation soapAction="echo_array_in_array" style="document" />
- <wsdl:input name="echo_array_in_array">
+ <wsdl:operation name="echo_boolean_array">
+ <soap:operation soapAction="echo_boolean_array" style="document" />
+ <wsdl:input name="echo_boolean_array">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_array_in_arrayResponse">
+ <wsdl:output name="echo_boolean_arrayResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_boolean_array">
- <soap:operation soapAction="echo_boolean_array" style="document" />
- <wsdl:input name="echo_boolean_array">
+ <wsdl:operation name="echo_class_with_self_reference">
+ <soap:operation soapAction="echo_class_with_self_reference" style="document" />
+ <wsdl:input name="echo_class_with_self_reference">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_boolean_arrayResponse">
+ <wsdl:output name="echo_class_with_self_referenceResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
@@ -1335,6 +1335,24 @@
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
+ <wsdl:operation name="echo_datetime">
+ <soap:operation soapAction="echo_datetime" style="document" />
+ <wsdl:input name="echo_datetime">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="echo_datetimeResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echo_double">
+ <soap:operation soapAction="echo_double" style="document" />
+ <wsdl:input name="echo_double">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="echo_doubleResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
<wsdl:operation name="echo_double_array">
<soap:operation soapAction="echo_double_array" style="document" />
<wsdl:input name="echo_double_array">
@@ -1344,78 +1362,90 @@
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_float_array">
- <soap:operation soapAction="echo_float_array" style="document" />
- <wsdl:input name="echo_float_array">
+ <wsdl:operation name="echo_duration">
+ <soap:operation soapAction="echo_duration" style="document" />
+ <wsdl:input name="echo_duration">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_float_arrayResponse">
+ <wsdl:output name="echo_durationResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_integer_array">
- <soap:operation soapAction="echo_integer_array" style="document" />
- <wsdl:input name="echo_integer_array">
+ <wsdl:operation name="echo_enum">
+ <soap:operation soapAction="echo_enum" style="document" />
+ <wsdl:input name="echo_enum">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_integer_arrayResponse">
+ <wsdl:output name="echo_enumResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_simple_boolean_array">
- <soap:operation soapAction="echo_simple_boolean_array" style="document" />
- <wsdl:input name="echo_simple_boolean_array">
+ <wsdl:operation name="echo_extension_class">
+ <soap:operation soapAction="echo_extension_class" style="document" />
+ <wsdl:input name="echo_extension_class">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_simple_boolean_arrayResponse">
+ <wsdl:output name="echo_extension_classResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_string_array">
- <soap:operation soapAction="echo_string_array" style="document" />
- <wsdl:input name="echo_string_array">
+ <wsdl:operation name="echo_float">
+ <soap:operation soapAction="echo_float" style="document" />
+ <wsdl:input name="echo_float">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_string_arrayResponse">
+ <wsdl:output name="echo_floatResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- </wsdl:binding>
- <wsdl:binding name="Application" type="tns:Application">
- <soap:binding style="document" />
- <wsdl:operation name="echo_attachment">
- <soap:operation soapAction="echo_attachment" style="document" />
- <wsdl:input name="echo_attachment">
+ <wsdl:operation name="echo_float_array">
+ <soap:operation soapAction="echo_float_array" style="document" />
+ <wsdl:input name="echo_float_array">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_attachmentResponse">
+ <wsdl:output name="echo_float_arrayResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_attachment_array">
- <soap:operation soapAction="echo_attachment_array" style="document" />
- <wsdl:input name="echo_attachment_array">
+ <wsdl:operation name="echo_in_complex_header">
+ <soap:operation soapAction="echo_in_complex_header" style="document" />
+ <wsdl:input name="echo_in_complex_header">
<soap:body use="literal" />
+ <soap:header message="tns:echo_in_complex_headerInHeaderMsg" part="InHeader" use="literal" />
+ <soap:header message="tns:echo_in_complex_headerInHeaderMsg" part="InTraceHeader" use="literal" />
</wsdl:input>
- <wsdl:output name="echo_attachment_arrayResponse">
+ <wsdl:output name="echo_in_complex_headerResponse">
<soap:body use="literal" />
+ <soap:header message="tns:echo_in_complex_headerOutHeaderMsg" part="OutHeader" use="literal" />
+ <soap:header message="tns:echo_in_complex_headerOutHeaderMsg" part="OutTraceHeader" use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_class_with_self_reference">
- <soap:operation soapAction="echo_class_with_self_reference" style="document" />
- <wsdl:input name="echo_class_with_self_reference">
+ <wsdl:operation name="echo_in_header">
+ <soap:operation soapAction="echo_in_header" style="document" />
+ <wsdl:input name="echo_in_header">
<soap:body use="literal" />
+ <soap:header message="tns:InHeader" part="InHeader" use="literal" />
</wsdl:input>
- <wsdl:output name="echo_class_with_self_referenceResponse">
+ <wsdl:output name="echo_in_headerResponse">
<soap:body use="literal" />
+ <soap:header message="tns:OutHeader" part="OutHeader" use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="echo_extension_class">
- <soap:operation soapAction="echo_extension_class" style="document" />
- <wsdl:input name="echo_extension_class">
+ <wsdl:operation name="echo_integer">
+ <soap:operation soapAction="echo_integer" style="document" />
+ <wsdl:input name="echo_integer">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="echo_extension_classResponse">
+ <wsdl:output name="echo_integerResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="echo_integer_array">
+ <soap:operation soapAction="echo_integer_array" style="document" />
+ <wsdl:input name="echo_integer_array">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="echo_integer_arrayResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
@@ -1437,6 +1467,15 @@
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
+ <wsdl:operation name="echo_simple_boolean_array">
+ <soap:operation soapAction="echo_simple_boolean_array" style="document" />
+ <wsdl:input name="echo_simple_boolean_array">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="echo_simple_boolean_arrayResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
<wsdl:operation name="echo_simple_class">
<soap:operation soapAction="echo_simple_class" style="document" />
<wsdl:input name="echo_simple_class">
@@ -1455,33 +1494,21 @@
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- </wsdl:binding>
- <wsdl:binding name="Application" type="tns:Application">
- <soap:binding style="document" />
- <wsdl:operation name="complex_return">
- <soap:operation soapAction="complex_return" style="document" />
- <wsdl:input name="complex_return">
- <soap:body use="literal" />
- </wsdl:input>
- <wsdl:output name="complex_returnResponse">
- <soap:body use="literal" />
- </wsdl:output>
- </wsdl:operation>
- <wsdl:operation name="custom_messages">
- <soap:operation soapAction="custom_messages" style="document" />
- <wsdl:input name="custom_messages">
+ <wsdl:operation name="echo_string">
+ <soap:operation soapAction="echo_string" style="document" />
+ <wsdl:input name="echo_string">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="getCustomMessagesMsgOut">
+ <wsdl:output name="echo_stringResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="do_something_else">
- <soap:operation soapAction="do_something_else" style="document" />
- <wsdl:input name="do_something_else">
+ <wsdl:operation name="echo_string_array">
+ <soap:operation soapAction="echo_string_array" style="document" />
+ <wsdl:input name="echo_string_array">
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output name="do_something_elseResponse">
+ <wsdl:output name="echo_string_arrayResponse">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
@@ -1521,6 +1548,15 @@
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
+ <wsdl:operation name="python_exception">
+ <soap:operation soapAction="python_exception" style="document" />
+ <wsdl:input name="python_exception">
+ <soap:body use="literal" />
+ </wsdl:input>
+ <wsdl:output name="python_exceptionResponse">
+ <soap:body use="literal" />
+ </wsdl:output>
+ </wsdl:operation>
<wsdl:operation name="return_binary_data">
<soap:operation soapAction="return_binary_data" style="document" />
<wsdl:input name="return_binary_data">
@@ -1548,56 +1584,6 @@
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
- <wsdl:operation name="test_empty">
- <soap:operation soapAction="test_empty" style="document" />
- <wsdl:input name="test_empty">
- <soap:body use="literal" />
- </wsdl:input>
- <wsdl:output name="test_emptyResponse">
- <soap:body use="literal" />
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
- <wsdl:binding name="Application" type="tns:Application">
- <soap:binding style="document" />
- <wsdl:operation name="echo_in_header">
- <soap:operation soapAction="echo_in_header" style="document" />
- <wsdl:input name="echo_in_header">
- <soap:body use="literal" />
- <soap:header message="tns:InHeader" part="InHeader" use="literal" />
- </wsdl:input>
- <wsdl:output name="echo_in_headerResponse">
- <soap:body use="literal" />
- <soap:header message="tns:OutHeader" part="OutHeader" use="literal" />
- </wsdl:output>
- </wsdl:operation>
- <wsdl:operation name="send_out_header">
- <soap:operation soapAction="send_out_header" style="document" />
- <wsdl:input name="send_out_header">
- <soap:body use="literal" />
- <soap:header message="tns:InHeader" part="InHeader" use="literal" />
- </wsdl:input>
- <wsdl:output name="send_out_headerResponse">
- <soap:body use="literal" />
- <soap:header message="tns:OutHeader" part="OutHeader" use="literal" />
- </wsdl:output>
- </wsdl:operation>
- </wsdl:binding>
- <wsdl:binding name="Application" type="tns:Application">
- <soap:binding style="document" />
- <wsdl:operation name="echo_in_complex_header">
- <soap:operation soapAction="echo_in_complex_header" style="document" />
- <wsdl:input name="echo_in_complex_header">
- <soap:body use="literal" />
- <soap:header message="tns:echo_in_complex_headerInHeaderMsg" part="InHeader" use="literal" />
- <soap:header message="tns:echo_in_complex_headerInHeaderMsg" part="InTraceHeader" use="literal" />
- </wsdl:input>
- <wsdl:output name="echo_in_complex_headerResponse">
- <soap:body use="literal" />
- <soap:header message="tns:echo_in_complex_headerOutHeaderMsg" part="OutHeader" use="literal" />
- <soap:header message="tns:echo_in_complex_headerOutHeaderMsg" part="OutTraceHeader" use="literal" />
- </wsdl:output>
- </wsdl:operation>
<wsdl:operation name="send_out_complex_header">
<soap:operation soapAction="send_out_complex_header" style="document" />
<wsdl:input name="send_out_complex_header">
@@ -1611,36 +1597,32 @@
<soap:header message="tns:send_out_complex_headerOutHeaderMsg" part="OutTraceHeader" use="literal" />
</wsdl:output>
</wsdl:operation>
- </wsdl:binding>
- <wsdl:binding name="Application" type="tns:Application">
- <soap:binding style="document" />
- <wsdl:operation name="documented_exception">
- <soap:operation soapAction="documented_exception" style="document" />
- <wsdl:input name="documented_exception">
+ <wsdl:operation name="send_out_header">
+ <soap:operation soapAction="send_out_header" style="document" />
+ <wsdl:input name="send_out_header">
<soap:body use="literal" />
+ <soap:header message="tns:InHeader" part="InHeader" use="literal