Commit Graph

110 Commits

Author SHA1 Message Date
Jurko Gospodnetić a78141ada6 fix an additional broken recursive WSDL import scenario
- added related test
- fixed the issue & commented the fix
- updated related already existing comment in the original WSDL import fix
2015-06-29 23:39:51 +02:00
Jurko Gospodnetić 7e24435e31 remove whitespace in front of : in dictionary literal (stylistic) 2015-06-29 21:35:18 +02:00
Jurko Gospodnetić 560743c246 mark some internal Binding WSDL object methods as private
Renamings:
- resolveport --> __resolveport
- resolvesoapbody --> __resolvesoapbody
- resolveheaders --> __resolveheaders
- resolvefaults --> __resolvefaults
2015-06-29 21:33:55 +02:00
Jurko Gospodnetić ab2b7a4c5c fix broken recursive WSDL imports
Suds now correctly handles twisted use-cases as seen in some M$ web services,
and whose one possible structure has been illustrated by the
test_recursive_WSDL_import() test in the test_client.py test module.

Note that this has nothing to do with recursive XSD schema imports which still
have known issues.

Updated todo list.
2015-06-29 21:31:38 +02:00
Jurko Gospodnetić e5cf6ba74b correct try:/except: blocks eating up internal Python exceptions
All such block replaced with blocks catching Exception subclasses only so they
no longer eat up internal Python exceptions like SystemExit or
KeyboardInterrupt.
2014-02-28 00:51:15 +01:00
Jurko Gospodnetić e54e3e021e clean up suds/wsdl.py module - stylistic changes
Reordered imports alphabetically.
Docstrings PEP-8-ified.
String literals updated to use double quotes where possible.
Several log & exception messages updated to use single instead of double quotes.
Line wrapping updates.
2014-02-17 23:19:00 +01:00
Jurko Gospodnetić ee8a547924 remove unnecessary logger objects
Code cleaned up a bit while looking for unused logger objects:
 * Trailing spaces removed.
 * Reordered import directives.
 * Removed some unnecessary import directives.
2013-12-26 03:32:33 +01:00
Jurko Gospodnetić 3fee821e3f Added 'unwrap' option. Based on implementation contributed by Juraj Ivančić.
Allows disabling suds library's automated simple document interface unwrapping.
Added related unit tests. Updated todo list.
2013-04-01 17:59:53 +02:00
Jurko Gospodnetić 905cf64b94 Minor stylistic changes. 2013-03-29 19:12:59 +01:00
Jurko Gospodnetić f497c6c1a3 Web service location now held as a unicode string.
This removes the need for the suds.bytes2str() Python 2/3 compatibility hack.
2013-03-29 04:59:45 +01:00
Jurko Gospodnetić 5a2c6ea3cb Code cleanup - removed several unnecessary imports. Updated todo list. 2011-12-26 18:33:07 +01:00
Jurko Gospodnetić 75f72ee401 Code cleanup - inlined suds.wsdl.Types.create().
This function was used only once, undocumented and it is unclear when it should
be used and when the regular suds.wsdl.Types constructor should be used
directly.
2011-12-25 23:54:45 +01:00
Jurko Gospodnetić 36ad75e2fa Removed an unused suds.wsdl.WObject.__init__() 'definitions' parameter. 2011-12-25 23:54:45 +01:00
Jurko Gospodnetić 7e7aa81680 Minor stylistic changes.
* Trimmed trailing spaces.
  * Trimmed duplicate spaces after '='.
  * Comment typo corrections.
  * Standardized referring to acronyms using all-capital letters, e.g. 'SOAP',
    'URL', 'WSDL' & 'XML'.
  * Improved class & function description docstrings.
  * Indentation corrections.
  * Removed redundant trailing tuple definition commas.
2011-12-25 13:31:08 +01:00
Jurko Gospodnetić 80e6e191e1 Split absolute and relative imports into separate import statements.
This is needed for the lib2to3 Python 2 to 3 conversion to correctly recognize
old-style relative imports and adjust their syntax for Python 3.
2011-12-20 15:49:35 +01:00
Jurko Gospodnetić 7d96121e70 Cleanup - trimmed trailing spaces, removed unnecessary imports, etc.
Trimmed trailing spaces. Removed unnecessary imports. Standardized quote usage
in some modules.
2011-12-20 15:12:32 +01:00
jortel 01a5854eb4 Fix regression of ticket #348 introduced in r698. 2010-09-13 16:26:09 +00:00
jortel 81235c4890 Fix Import doctor as plugin; Add plugins.document.parsed() call for schema defined in the wsdl. 2010-09-10 13:51:47 +00:00
jortel 780f8f85ff Fix duplicate DocumentPlugin.parsed() called when wsdl imports schema. 2010-09-01 17:38:56 +00:00
jortel 9c23c8d766 plugin API - version 2. 2010-08-24 14:42:24 +00:00
jortel 4a6c53fea5 Modified plugin API to: initialized(), loaded(), sending() & received(). 2010-05-13 17:51:00 +00:00
jortel a5fde7a6b0 Add Plugins facility. Supports hooks for onInit(), onLoad(), onSend() onReply() events. 2010-05-11 20:44:48 +00:00
jortel 40b3eba44b Change wsdl Import to use DocumentReader instead of DefinitionsReader. This will eliminate caching intermediate wsdl objects. 2010-02-26 01:39:15 +00:00
jortel 4498de24bb Add check for 'options' before del and change to remove list of unwanted options. Also, restore 'options' on imported wsdls when unpickled. 2010-01-29 13:50:33 +00:00
jortel aea9a9ddaa Fix pickling problem with wsdls that import other wsdls. 2010-01-28 22:47:26 +00:00
jortel 2921f8d289 Fix missing 'self' on getid. 2010-01-27 20:49:14 +00:00
jortel 63eb8bb550 Enable WSDL caching as pickled object; refactor caching; remove /options/ attributes on object within (xsd) package and instead - pass to methods as needed (which was only a few); remove /schema/ & /options/ attributes from objects in (binding) package and get from wsdl instead; replace Object subclasses with Facade in wsdl for better pickling - true subclasses have no value here anyway. 2010-01-26 22:19:21 +00:00
jortel 4921924e25 Move transport caching to document-based caching. This approach leverages the performance of pickling/unpickling of sax DOM object graphs. Also, ensures that only valid/complete XML documents are cached. The NoCache class moved as well so users disabling the cache as Client(url, cache=NoCache) should switch to the preferred: Client(url, cache=None). 2010-01-12 23:15:00 +00:00
jortel 64dc23b60e Decouple the sax.Parser and the Transport. 2010-01-12 17:53:21 +00:00
jortel f27161619e Fix ticket 284; have <soap:fault/> inherit the /name/ from the outer <fault/> element in <binding/>. 2009-12-10 14:32:22 +00:00
jortel 2bed5527db Fix ticket 282; fixed wsdl schema_import(). 2009-12-04 17:38:23 +00:00
jortel f3bc8675f8 Move soaparray XSD extensions to separate module named soaparray.py. Update (mx) Encoded marshaller to translate (cast) any untyped array objects to typed objects with XSD type metadata to ensure that the auto typing applied to <xs:any/> contents of encoded arrays have the correct xsi:type. suds objects passed as array content will work as before. Reintroduced support for passing python dict(s) for complex objects __not__ typed in the wsdl as abstract or base classes. Not all use cases tested. 2009-12-02 01:05:14 +00:00
jortel 2a448e06bd The strategy for unmarshalling soap encoded arrays needed to be updated. Instead of postprocessing the array content, I needed to propigate the array type to the items within the array when the xsi:type was not explicitly set. The primary reason is so the array items would have a /known/ type other then <xs:any/>. This is necessary to that the contents of array items that are objects would be processed properly. 2009-11-25 17:33:56 +00:00
jortel d96c76e2ef Fix cut-n-paste of wsdl object class name for <fault/>. 2009-11-20 22:12:43 +00:00
jortel bd825da175 Enhance rpc/encoded (soap section 5) encoded arrays. This includes soap-enc:arrayType='ns0:sometype[4]' attributes. Also, parameters & object attributes that are soap arrays may be passed using python list|tuple svn st|grep -v ?. Users creating the ArrayOfSomethings using the client.factory.create() will still work. 2009-11-06 20:52:09 +00:00
jortel a2ae9379d4 Fixed ticket #266, Enhance wsdl to allow for services having ports where the <address/> is not specified. Users will have to override the location for these services. 2009-11-02 16:37:57 +00:00
jortel de6e471958 Enhance handling of WSDL when <input/> in not specified. 2009-10-27 21:58:48 +00:00
jortel 6bbe2277fb Fix ticket #261; fix wsdl.Service.setlocation() 2009-10-27 14:50:27 +00:00
jortel f5cb6013d9 Fix ticket #254 by handling simple types by restriction. Also, remove dead line of code in wsdl.py. 2009-10-14 21:16:25 +00:00
jortel 6a9944f762 update epydocs and bump beta release information. 2009-09-09 22:40:14 +00:00
jortel 8428ec5955 Update wsdl Definitions to process <fault/> information. 2009-09-09 22:33:54 +00:00
jortel a88a54fd60 Rework the wsdl, client and servicedefinition to handle wsdls with multiple services. To ensure symmetry, the API for multiple ports was modified and the implementation simplified. See https://fedorahosted.org/suds/wiki/Documentation. The client API also replaces the self.service & self.sd with self.services and self.sd is not a list. We may want to simplify the ServiceDefintion as it currently repeats all of the /types/ for each service. Fixes ticket #247. 2009-08-20 23:56:52 +00:00
jortel 004b85a6d6 Fix ticket #241. Update wsdl data model to only include message parts in <body/> as specified by binding definition <soap:body parts=''/>. Accomplished by: flushing out (wsdl.py) Definitions: binding.operation.soap.(input|output).body to contain message parts as defined by optional binding <input parts=''/> and <output parts=''/>. When parts omitted, all parts of referenced message parts included in message <body/>. Replace binding.operation.soap.(input|output).headers.header.message with header.message header.part. Move service.methods[].method.(input|output).wrapped to method.soap.(input|output).body. Remove service.method[].method.message because the method.soap not contains all input and output message parts. Update bindings to match wsdl Definitions structural changes. 2009-07-18 00:53:55 +00:00
jortel 8d6a1d58ab Fix ticket #208; move message (wrapped|bare) detection to wsdl; abstract getting reply contents to subclass bindings. 2009-03-11 15:56:37 +00:00
jortel 4b3d0b8b98 Update WSDL processing to handle <soap:operation/> inside of <wsdl:operation/> as optional. 2009-03-06 23:03:55 +00:00
jortel 7eaea82a8e Update public and axis1 tests to work with prefix changes. Update wsdl so that soap body namespaces always have a prefix (body defaults to 'b0' and headers default to 'h0'). Update servicedefinitiion to omit (None) namespaces from mappings. Add default for Element.findPrefix(). Fix Element.nsdeclaration() so that mixed expns and prefixed ns works properly. Fix marshaller to work properly with elementFromDefault=unqualified -- nodes are not qualified; this expects root to be qualified elsewhere; may need to revisit this. Update binding PartElement to be unqualified 2009-02-18 00:07:04 +00:00
jortel 146c7782a6 Updated wsdl to properly handle port types with multiple soap headers defined. Fixed ticket #155; Added support for soapheaders option to take a dict when multiple headers are defined. 2009-02-11 22:44:57 +00:00
jortel 1f713dbe95 Fix performance problem 2009-01-20 21:11:30 +00:00
jortel 706cd756cb Fix multidocument document/literal to uses element names instead of part names; Fix xs:import with relative url for imports of schema from imported wsdls. 2009-01-13 21:21:27 +00:00
jortel b99050dc09 Refactor client namespace objects; add http authentication to axis1 and associated test 2008-11-25 23:24:32 +00:00