Commit Graph

1521 Commits

Author SHA1 Message Date
Jurko Gospodnetić 1c3f56d1f5 update todo list 2014-06-15 22:02:14 +02:00
Jurko Gospodnetić 3cefc6068d make suds no longer eat up exceptions raised in user registered plugins
Many thanks to Bouke Haarsma (bouke at BitBucket) & Ezequiel Ruiz (emruiz81 at
BitBucket) for detecting and reporting the issue as well as to Bouke Haarsma for
preparing a suitable test case and the initial patch.
2014-06-15 22:01:51 +02:00
Jurko Gospodnetić e283fd0e7f add tests for the suds.plugin module 2014-06-15 21:53:19 +02:00
Jurko Gospodnetić ecf7b75011 update todo list 2014-06-15 21:20:40 +02:00
Jurko Gospodnetić 4592b7de99 clean up the suds.plugin module - stylistic changes 2014-06-15 21:20:31 +02:00
Jurko Gospodnetić c4ca0d96f5 update release notes for the upcoming 0.7 release 2014-06-15 20:28:06 +02:00
Jurko Gospodnetić 8f3973c689 update todo list 2014-06-15 20:12:39 +02:00
Jurko Gospodnetić a411ec1df0 fix bug causing suds.cache.DocumentCache to never cache any documents
suds.reader.DocumentReader passes suds.sax.document.Document instances to the
cache which then get silently ignored.

The bug was introduced in one of the final commits in the original suds project
(around the end of 2011) where suds.sax.document.Document class was refactored
to no longer inherit from suds.sax.element.Element.

To maintain backward compatibility, for now we still expect to support passing
suds.sax.element.Element instances to suds.cache.DocumentCache.put() even though
it seems the rest of the suds implementation never does this.
2014-06-15 20:12:26 +02:00
Jurko Gospodnetić 6121b75fc1 test that DocumentCache.put() operation accepts Document instances
Originally the tests were prepared based on the current DocumentCache.put()
which appears to accept only suds.sax.element.Element instances as input.
However, after reviewing the original suds project and the current suds
implementation, it seems that this is actually a suds bug and that it should
accept suds.sax.document.Document instances instead.

Without this, suds.reader.DocumentReader passes suds.sax.document.Document
instances to the cache which then get silently ignored.

The bug was introduced in one of the final commits in the original suds project
(around the end of 2011) where suds.sax.document.Document class was refactored
to no longer inherit from suds.sax.element.Element.

To maintain backward compatibility, for now we still expect to support passing
suds.sax.element.Element instances to suds.cache.DocumentCache.put() even though
it seems the rest of the suds implementation never does this.
2014-06-15 20:09:31 +02:00
Jurko Gospodnetić 11ff56d9da fix suds.sax.document.Document str conversion under Python 2
Document instances knew how to convert themselves to their unicode
representation but reported some generic class description string when asked to
convert to a str instance on Python 2.

Bug originally introduced when replacing all __str__() methods with the Unicode
Mixin class.

Many thanks to Ezequiel Ruiz (emruiz81 at BitBucket) for detecting and reporting
the issue.
2014-06-15 19:45:23 +02:00
Jurko Gospodnetić d172038544 test suds.sax.document.Document string conversions 2014-06-15 19:41:22 +02:00
Jurko Gospodnetić de937c00fb test suds.sax.element.Element string conversions 2014-06-15 19:27:47 +02:00
Jurko Gospodnetić 4bdec62b18 update ez_setup.py to version from setuptools 5.0.2
The previously used 4.0.1 setuptools version got revoked and 5.1 superseeds it.

Updated related README.rst project docs.
2014-06-15 17:21:22 +02:00
Jurko Gospodnetić 8f424659d7 add basic suds.sax.element unit tests
For now just tests:
  - basic Element construction,
  - construction name parameter handling
  - childAtPath() method

Updated todo list, including adding many new todo items related to adding new
tests.
2014-06-14 23:59:35 +02:00
Jurko Gospodnetić d5efc8081f fix incorrectly named variable in suds/sax/element.py
Brown paper bag fix for a typo introduced when doing code cleanup in a previous
commit affecting this module.

Many thanks to bgr_@bitbucket for catching and reporting this.
2014-06-13 10:32:59 +02:00
Augusto Destrero 88e50937b8 do not use self but cls in classmethod 2014-06-09 12:33:39 +02:00
Jurko Gospodnetić 024ac2618d update ez_setup.py to version from setuptools 4.0.1
Merged ez_setup.py updates from the original setuptools project.

Updated related README.rst project docs.
2014-06-04 14:48:43 +02:00
Jurko Gospodnetić 231a8c7d24 add Python 2.7.7 to the list of officially tested Python environments 2014-06-02 15:27:40 +02:00
Jurko Gospodnetić 3ece6d16a0 make 'setup.py test' command support passing pytest specific arguments
Added a new 'setup.py test' command-line options --pytest-args/-a accepting all
pytest specific command-line arguments as a single whitespace separated string.

For example, the following command will run only tests containing ``binding`` in
their name, will stop on first failure and will automatically drop into Python's
post-mortem debugger on failure::

  setup.py test -a "-k binding -x --pdb"

Does not currently support passing pytest specific command-line arguments
containing embedded whitespace.
2014-05-31 13:58:17 +02:00
Jurko Gospodnetić 95e7b40d17 correct stylistic typo - remove trailing semicolon 2014-05-31 13:53:04 +02:00
Jurko Gospodnetić 9dd037a67f clean up the setup.py TestCommand command class
* made less reliant on its setuptools.command.test.test base class
* better commented its relationship with its base class
* no longer triggers its base setuptools test command's command-line option
processing
* no longer incorrectly reports supporting its base class's command-line options
* no longer incorrectly reports using the 'unittest' framework in its verbose
output
2014-05-31 13:51:26 +02:00
Jurko Gospodnetić e3b0a5d67c make 'setup.py test' collect tests outside the project's 'tests' folder 2014-05-31 13:35:15 +02:00
Jurko Gospodnetić 62977f5969 port tools/run_all_tests.cmd to Python
Now uses the same list of Python environments as used by
'tools/setup_base_environments.py' stored inside the project's main
configuration file 'setup.cfg'.

Updated todo list.
2014-05-29 19:28:33 +02:00
Jurko Gospodnetić 9bbc373837 avoid setup warnings when constructing a list of all project sources
Python 2 versions prior to some early 2.7.x release and Python 3 versions prior
to some 3.2.x release had buggy disutils implementations that can result in our
project's source distribution containing some extra unwanted files picked up
from some of our local 'tools/__*' cache folders. Such extra files are then
explicitly excluded by an explicit 'prune' rule in MANIFEST.in.

However, that can cause spurious warnings in case no such local cache folders
exist or no files have been collected from them. This commit works around the
issue in 2 stages:
 1. setup.py always creates one such dummy folder containing a single dummy file
    that is guaranteed to always be included on buggy implementations. This
    avoids the warning on buggy distutils implementations when no extra files
    have been collected.
 2. MANIFEST.in explicitly includes the dummy file created by setup.py. This
    avoids the warning on working distutils implementations which never collect
    any extra files by themselves.
2014-05-29 14:00:30 +02:00
Jurko Gospodnetić d4bf6becb8 read test Environment names from their config section names instead of commands 2014-05-28 19:53:26 +02:00
Jurko Gospodnetić c83ed42aa9 make reading test environment config automatically create Environment objects
This work is done as a part of preparing the code base to make it reusable in
the planned tools/run_all_tests.cmd Python port as there exactly the same
Environment objects will need to be created.
2014-05-28 19:51:06 +02:00
Jurko Gospodnetić 81af9cc694 fix error reporting when test environment config has an empty command option 2014-05-28 19:47:36 +02:00
Jurko Gospodnetić 438280d599 fix running tests using 'setup.py test' command with Python 2.4
Since the pytest & py packages we used to make our tests run on Python 2.4 are
not formally compatible, we must not explicitly specify pytest as a test
requirement or setuptools will go ahead and verify that all of its formally
specified requirements have been specified and fail.
2014-05-31 13:04:34 +02:00
Jurko Gospodnetić 6f9966c088 add missing tools/suds_devel/__init__.py module
Without this file, setup scripts run from a fresh checkout would fail because
they were not able to import the suds_devel module.
2014-05-28 14:16:41 +02:00
Jurko Gospodnetić 730a5191a8 specify exact test Python environment commands in setup.cfg
As before, configured project test environment startup commands use the '.cmd'
suffix as that matches the startup commands used on the current maintainer's
notebook, but now that suffix is no longer hardcoded and is explicitly specified
in the project's configuration file instead.
2014-05-28 12:18:53 +02:00
Jurko Gospodnetić 3a28776604 report current working folder before reading configuration 2014-05-28 10:17:58 +02:00
Jurko Gospodnetić 1a16ee3224 clean up version specific subprocess.DEVNULL using code 2014-05-28 06:27:20 +02:00
Jurko Gospodnetić 62ecd41743 make suds_devel.Environment class's initial environment scanning optional
This work is done as a part of preparing the code base to make it reusable in
the planned tools/run_all_tests.cmd Python port as there Environment objects
will only be used to run the project test suite in a specific Python environment
and will not require additional data collected about that environment.
2014-05-28 06:26:35 +02:00
Jurko Gospodnetić 6da14d36b3 improve suds_devel.utility.path_iter() docstring wording a bit 2014-05-27 10:47:03 +02:00
Jurko Gospodnetić 846bad000f improve script utility.Config class reusability
Now stores its script folder, project folder & ini file paths instead of having
each of its derived classes process that configuration for themselves.

This work is done as a part of preparing the code base to make it reusable in
the planned tools/run_all_tests.cmd Python port.
2014-05-27 10:46:13 +02:00
Jurko Gospodnetić 1d5ab1136f fix simple error handling bug
Detected by pressing Ctrl-C while the initial environment scan was in progress.
2014-05-27 10:27:22 +02:00
Jurko Gospodnetić 7d90d49db3 tools/setup_base_environments.py code cleanup
Since we import too many functions from the suds_devel.utility module, it seems
cleaner to import the module and use its functions by referencing them using an
explicit module prefix instead of importing each one of those functions
explicitly into the local namespace.
2014-05-27 10:20:18 +02:00
Jurko Gospodnetić 5987d4332d update todo list 2014-05-26 15:06:49 +02:00
Jurko Gospodnetić 7168363c8a brown paper bag fix for broken setup on Python 2.4 2014-05-26 14:43:02 +02:00
Jurko Gospodnetić eb6866b271 do not include local 'tools/__*' cache folders in the project's sdist
The MANIFEST.in file gets processed so that rules in later lines override those
read from earlier ones, meaning we need to add files to the project's source
distribution before we specify that nothing should be added from internal
'tools/__*' cache folders.
2014-05-26 14:37:55 +02:00
Jurko Gospodnetić 34917137cc note benign 'setup.py test' error with colorama<0.1.11 & Python 2.5 on Windows 2014-05-26 13:43:27 +02:00
Jurko Gospodnetić 1aa98d0d90 require pytest 2.6.0 under Python 3.1
pytest 2.6.0 restores Python 3.1 compatibility that has been causing our project
testing to fail in that environment. Note that pytest 2.6.0 has not yet been
officially released but our project's testing has been tried out and found to be
working with the current pytest development tip.

Tested using both the 'setup.py test' command and the
'tools/setup_basic_environments.py' script.
2014-05-26 13:26:42 +02:00
Jurko Gospodnetić d949e38363 reword docs to make it clearer that the project supports Python 2.4+ 2014-05-26 13:05:33 +02:00
Jurko Gospodnetić 9e94620274 remove code duplication between setup.py & tools/setup_base_environments.py
Duplicate code extracted to new modules under the suds_devel package:
  - specifying the project's requirements - requirements.py
  - specifying the used setuptool install script - ez_setup_versioned.py

Updated todo list.
2014-05-26 13:04:24 +02:00
Jurko Gospodnetić a8ee9b16f9 fix slight end-user error message typo when running under Python 2 2014-05-23 11:24:41 +02:00
Jurko Gospodnetić 47bd3d9c61 clean up setup.py comment typos and style 2014-05-23 10:51:16 +02:00
Jurko Gospodnetić 43f608b9b4 document more detailed Python 2/3 source code compatibility notes 2014-05-22 19:46:25 +02:00
Jurko Gospodnetić 709409e59e test using Python 3.4.1
Updated related project documentation & test scripts.
2014-05-22 19:44:17 +02:00
Jurko Gospodnetić 5a4b0678b8 change development version identification to use standard .dev# suffixes
Updated relevant release procedure docs.
Updated the current project version information.
2014-05-17 15:41:02 +02:00
Jurko Gospodnetić dcbd129a01 clarify that we upload releases to PyPI using setup.py 2014-05-17 15:25:16 +02:00