Commit Graph

1521 Commits

Author SHA1 Message Date
Jurko Gospodnetić 01524e2cfe fix comment typo 2015-06-29 21:48:36 +02:00
Jurko Gospodnetić ce59997840 update project release notes 2015-06-29 21:45:11 +02:00
Jurko Gospodnetić 412be82578 refactor WSDL import related tests
All such tests were incorrectly left grouped under a class related to a more
specific use-case, and the class's description did not match its purpose.
2015-06-29 21:39:55 +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ć 122540ec8b test resolving WSDL entity references to entities defined later in XML 2015-06-29 00:14:26 +02:00
Jurko Gospodnetić b28f1d32fa fix typo 2015-06-29 00:13:02 +02:00
Jurko Gospodnetić 8eeb515872 add an xfail test demonstrating a bug with recursive WSDL imports 2015-06-28 22:33:49 +02:00
Jurko Gospodnetić 0a36ee2b21 replace suds with six compatibility tools in test_client.py 2015-06-28 22:32:32 +02:00
Jurko Gospodnetić da40a0153a test referencing imported WSDL entities with same base & imported tns
Updated todo list.
2015-06-28 22:02:06 +02:00
Jurko Gospodnetić 8060225bb3 tidy up WSDL import test data & its usage
- less duplication
- test specific test data now contained in those tests
- test data can now be constructed with custom XSD target namespace
- tests depending on imported & importing WSDL target namespaces now specify
them explicitly
2015-06-28 21:57:07 +02:00
Jurko Gospodnetić 8905c666d2 add tests showing how imported WSDL entities are referenced 2015-06-28 21:35:46 +02:00
Jurko Gospodnetić a7bdabf3a4 clean up WSDL importing test data
Reduced test data duplication and made the data more parametrizable so we may
use the same data for testing more WSDL import variations.

Moved some more parts of the WSDL import test data into the imported WSDL
schema.
2015-06-28 21:11:34 +02:00
Jurko Gospodnetić d9c4f21b1d update todo list 2015-06-28 19:50:00 +02:00
Jurko Gospodnetić e7dd8e6e51 remove invalid test_WSDL_import() test
When one WSDL imports another, this does not mean that the components from the
imported WSDL become part of the importing WSDL, but only means that importing
WSDL's components may now reference components from the imported WSDL.

The fact that suds currently imports actual components into the importing WSDL
is in fact a possible bug (unless it is just a part of some internal
implementation detail with no publicly visible side-effects, but even then such
a kludge should be made clearer in code).
2015-06-28 19:49:02 +02:00
Jurko Gospodnetić b89de4607a update test environments
Added new test environments - Python 2.7.8, 3.1.3/32-bit & 3.4.2.
Now testing using Windows 8.1/x64.
2014-12-25 20:11:09 +01:00
Jurko Gospodnetić 9ca8cf3e59 update project Python 2.5 compatibility documentation 2014-12-25 19:23:05 +01:00
Jurko Gospodnetić 8a73caaa25 update development environment setup for Python 2.5
Latest pytest & py package releases break compatibility with Python 2.5.
2014-12-25 19:22:30 +01:00
Jurko Gospodnetić 4b9c2d3a2d fix test failure with Python 3.4.2
New Python 3.4.2 urllib implementation now explicitly closes its HTTP server
connection socket in case of any exceptions.
2014-12-25 14:23:05 +01:00
Jurko Gospodnetić 116812f4c5 update todo list 2014-06-29 21:54:49 +02:00
Jurko Gospodnetić e7acfc9472 simplify SchemaObject.merge()
This method had `form_qualified` in its list of attributes whose values it
attempts to copy over from a referenced schema object, but since that
information should never be copied over from referenced elements (both
referencing and referenced elements must always be qualified) there is no need
to do so. Also, since the current implementation sets the `form_qualified` value
on all newly created SchemaObject instances, this function never actually copied
any `form_qualified` values over from referenced objects.
2014-06-29 21:52:26 +02:00
Jurko Gospodnetić f240fb7b97 top-level XSD schema elements are always considered qualified
Our original research was based on superficial Internet resources and lead us
down the wrong path. Reference & top-level XSD elements are always considered
qualified and that fact is not affected by any `form` or `elementFormDefault`
attribute values.
2014-06-29 21:22:09 +02:00
Jurko Gospodnetić 8c69058b21 reference XSD schema elements are always considered qualified
Our original research was based on superficial Internet resources and lead us
down the wrong path. Reference & top-level XSD elements are always considered
qualified and that fact is not affected by any `form` or `elementFormDefault`
attribute values.
2014-06-29 21:02:20 +02:00
Jurko Gospodnetić 070db9f869 update XSD element tests to with corrected form_qualified expectations
Our original research was based on superficial Internet resources and lead us
down the wrong path. Reference & top-level XSD elements are always considered
qualified and that fact is not affected by any `form` or `elementFormDefault`
attribute values.
2014-06-29 20:55:49 +02:00
Jurko Gospodnetić 8504531ae8 document collected XSD element research notes
Collected notes include information on:
 * global/local XSD elements
 * qualified/unqualified XSD elements
 * XSD element's target namespace
2014-06-29 19:50:16 +02:00
Jurko Gospodnetić 764787b05d remove colon from end of doc title (stylistic change) 2014-06-29 19:49:16 +02:00
Jurko Gospodnetić 1ca46c5448 remove unnecessary module import 2014-06-29 18:38:23 +02:00
Jurko Gospodnetić 4d1cfd77a0 update todo list 2014-06-28 15:07:19 +02:00
Jurko Gospodnetić 7e0ce36c85 correct stylistic project release notes typo 2014-06-28 15:06:32 +02:00
Jurko Gospodnetić 80f9eaac66 fix reading a reference XSD element's 'form' value
A reference XSD element's 'form' value is now correctly read from its referenced
element.

This fix:
 * fixes all tests in test_xsd_element.py previously marked as xfail,
 * corrects buggy test data in test_request_construction.py and
 * resolves project issue #49 on BitBucket.

Updated release notes.
Updated todo list.
2014-06-28 14:54:05 +02:00
Jurko Gospodnetić 8257dcf14f update project's old release notes' known defects sections 2014-06-28 14:46:09 +02:00
Jurko Gospodnetić 7af84bf51d clean up project's release notes a bit - stylistic changes 2014-06-28 14:45:40 +02:00
Jurko Gospodnetić 1c85704572 correct comment typos 2014-06-28 11:18:06 +02:00
Jurko Gospodnetić 0ddbb3c75f add XSD schema element related unit tests
New tests marked as expected to fail demonstrate a bug in the original suds
implementation's XSD element `form` attribute value handling. It seems that suds
uses incorrectly detects a referencing element's `form` attribute value - it
should but does not pick up the attribute value from the referenced element
instead of the referencing one (whether it is set directly or using their
schema's `elementFormDefault` attribute).

Updated todo list.
2014-06-27 20:58:11 +02:00
Jurko Gospodnetić 7f1757de5c update todo list 2014-06-27 16:53:01 +02:00
Jurko Gospodnetić 085165042d refactor DepList.sort() to a standalone dependency_sort() function
Renamed the suds.xsd.deplist module to suds.xsd.depsort.
Removed the DepList class and replaced its main/only functionality with a single
dependency_sort() function taking a dependency dictionary and returning the same
list that used to be returned by the DepList.sort() method.

The returned list's contents matches the items returned by the dependency
dictionary's items() method, but sorted so that dependencies come first.

Updated project release notes.

Additional included changes:
 * cleaned up the test_dependency_sort.py test module - cleanly separated
   basic tests, test utilities and test utility tests
 * added a test to make sure dependency_sort() does not modify its input data
 * documented that any entries found listed as dependencies, but that do not
   have their own dependencies listed as well, are logged & ignored
2014-06-27 16:17:25 +02:00
Jurko Gospodnetić 8086107bec simplify the suds.xsd.deplist.DepList.sort() implementation
Now implemented in much less code using a simple recursive implementation.

The new implementation has two detail differences:
 * dependencies can now be passed as a mutable/unhashable collection
 * returned list now contains 'equal' but no longer 'the same' 2-tuple items
2014-06-27 12:48:52 +02:00
Jurko Gospodnetić b6f33875e6 document the suds.xsd.deplist module's dependency cycle handling 2014-06-27 12:06:49 +02:00
Jurko Gospodnetić 28d845a383 update todo list 2014-06-27 01:16:19 +02:00
Jurko Gospodnetić 11b40943b6 extract dependency sort related tests from the suds.xsd.deplist module
Improved the tests in the process.
2014-06-27 01:15:50 +02:00
Jurko Gospodnetić 1810b67346 remove private member docs for suds.xsd.deplist.DepList
There private members were never intended to be a part of the class's published
interface, their docs were incorrect before the last stylistic cleanup done on
this module and the related private implementation details are planned to be
changed in the near future as well.
2014-06-26 21:18:53 +02:00
Jurko Gospodnetić 6265ce8992 clean up the suds.xsd.deplist module - stylistic changes
PEP8-ified the source code.
Corrected invalid code comments.
add() operation no longer returns self.
Internal operations & data marked as private.
2014-06-26 15:28:50 +02:00
Jurko Gospodnetić acf3924f6f optimize suds.xsd.sxbase.SchemaObject.content() to avoid extra list copies
The 'history' list was being excessively copied at every recursion level when
it was actually only used as an extra stack. Now the extra elements are simply
pushed/popped to/from the end of the stack instead of copying the whole stack
content every time. This brings the operation down to O(n) instead of O(n*n)
algorithmic complexity.

Updated related release notes.
2014-06-26 11:30:42 +02:00
Jurko Gospodnetić cff889cf25 update todo list 2014-06-23 08:30:10 +02:00
Jurko Gospodnetić 2a63ea10c1 clean up implementation comment style 2014-06-23 08:13:35 +02:00
Jurko Gospodnetić 4a9a37f051 use iteritems() instead of items() - slight optimization 2014-06-23 07:46:29 +02:00
Jurko Gospodnetić b79955e41f update todo list 2014-06-15 22:23:03 +02:00
Jurko Gospodnetić a2263bde4b fix buggy assert failing when converting Decimal("0.00") to its XSD string repr
Many thanks to Bouke Haarsma at BitBucket for detecting & reporting the issue,
as well as doing the research, preparing a suitable test case & preparing the
initial patch.
2014-06-15 22:22:52 +02:00
Jurko Gospodnetić 14e6f6c2ae test XSD Decimal type string representation for value zero with a negative exp 2014-06-15 22:21:11 +02:00