Commit Graph

1521 Commits

Author SHA1 Message Date
Jurko Gospodnetić 8d5951f309 update todo list 2014-05-17 14:09:46 +02:00
Jurko Gospodnetić 6c51cdc90b correct how the current path gets passed on a sys.path to test subprocesses
We want the test subprocesses to use the same sys.path as its calling process.
However, our test subprocesses get run in a different folder so we need to
manually convert any empty-string sys.path entries to the current folder path
before passing that sys.path off to a new test subprocess.
2014-05-17 14:12:29 +02:00
Jurko Gospodnetić b58e1cc263 fix failed test subprocess reporting - add missing pytest import 2014-05-17 14:10:44 +02:00
Jurko Gospodnetić bb0aef7591 fix KeyboardInterrupt & SetupExit handling in tests/profiling/__init__.py 2014-05-17 14:09:25 +02:00
Jurko Gospodnetić 06cb88feac make tests/test_compare.sax.py a runnable script 2014-05-17 14:08:56 +02:00
Jurko Gospodnetić 1618ae351f reorganize tests - run on installed suds version + do not require py2to3
The test suite is no longer installed together with the project and can now be
run from the project's source distribution. This resolves the issue of the suds
test suite confusing users by getting installed as a top level tests package in
their Python environment.

Project to be tested now need to be explicitly installed prior to running its
tests using pytest, except in case of Python 2 tests being run from the top
level project folder. This requires the user to install the project (suggested
way is to install it in editable mode using 'pip install -e') but also allows
him to run the tests on other non-sandbox project versions, e.g. an externally
installed version.

Project testing now requires the six Python 2/3 compatibility support package
(installed automatically, together with other test requirements).
Test support code now moved to a separate testutils package located under the
tests folder.
Updated project README.rst & HACKING.rst docs.
Minor stylistic changes.
2014-05-17 14:08:18 +02:00
Jurko Gospodnetić 34bcf2a476 update setup_base_environments.py to never install pytest below version 2.4.0 2014-05-17 13:30:37 +02:00
Jurko Gospodnetić 55725b4d93 make setup.py install py<1.4.16dev0 instead of py==1.4.15 under Python 2.4.x 2014-05-16 23:38:31 +02:00
Jurko Gospodnetić 9f94b0035f clean up setup.py code - minor stylistic changes 2014-05-16 23:36:42 +02:00
Jurko Gospodnetić 07ba0758e3 standardize code comment for removing a circular reference chain in Python 3 2014-05-16 23:36:09 +02:00
Jurko Gospodnetić 1f02bc652b fix KeyboardInterrupt & SetupExit handling in setup.py
There were several occurrences in code where such exceptions could have been
gobbled up when running under Python 2.4.x.
2014-05-16 23:29:51 +02:00
Jurko Gospodnetić 17033a6b91 make unsupported external tests closer to using shared Python 2/3 code
No longer ignoring KeyboardInterrupt & SystemExit exceptions in some places
when running under Python 2.4.x.
Minor stylistic changes.
2014-05-16 23:04:18 +02:00
Jurko Gospodnetić a3866610cc make setup.py install correctly into Windows Python 2.5 environments
Before it did not take care of which colorama package (pytest prerequisite) got
installed into such environments, which could cause it to install an
incompatible one.

Code lifted from the tools/setup_basic_environments.py script and this code
duplication should be removed in the future.
2014-05-16 22:10:42 +02:00
Jurko Gospodnetić d41b8f1b8e clean up setup.py code a bit 2014-05-16 22:07:36 +02:00
Jurko Gospodnetić 411dae9c9c add support for releasing suds as a wheel distribution 2014-05-15 20:01:36 +02:00
Jurko Gospodnetić 549a7c800f update todo list
One of the tools/setup_base_evironments.py related todo items there transferred
over to an embedded TODO source comment.
2014-05-15 18:34:59 +02:00
Jurko Gospodnetić ea02fb96ad add tools/setup_base_environments.py development script
Installs packages into multiple Python environments so they can be used for
testing this project. This automates all the previously manually done work on
setting up those environments.

The script contains a multitude of open TODO comments and should still be
considered 'work in progress', but successfully gets the work done at least on
one Windows 7 x64 SP1 machine with 17 different parallel Python installations.

Updated relevant HACKING.rst docs.

Relevant configuration added to the main project Python configuration file
'setup.cfg'.

All Python modules indended for use in different project development utility
scripts have been placed under the suds_devel package folder located under the
tools project folder.

The new scripts:
 - are included in the project's source distribution,
 - are not installed with the project
 - do not need py2to3 processing
 - do not have any tests of their own yet

tools/__* folders get created and used as local caches by the new
tools/setup_base_environments.py development script and so must not included in
the project's source distribution.
2014-05-15 17:10:55 +02:00
Jurko Gospodnetić c6b64a1849 add new tools folder for holding internal project development utility scripts
Moved the top-level run_all_tests.cmd script under the newly added tools folder.
Updated relevant docs.
2014-05-15 15:36:26 +02:00
Jurko Gospodnetić 437cedab54 make Mercurial ignore additional setup.py/build/test artifacts
Files & folders starting '__' are temporary or cache artefacts produced by
either Python (e.g. '__pycache__' folders) or our internal development tools.

*.egg/*.gz/*.zip files may be downloaded by setup.py when running its develop/install/test commands.

*.egg-info folder gets created by setup.py when running its
build/develop/egg_info/install/test commands.
2014-05-15 07:10:47 +02:00
Jurko Gospodnetić cd35f9e29f make setup.py header comment consistent with other utf-8 encoded modules
In all other suds project's utf-8 encoded modules, the coding comment is
separated from the copyright comment with a single empty line.
2014-05-14 14:45:37 +02:00
Matthew Duggan 25cbfd7f14 Correct some parameter names for epydoc 2014-05-21 16:27:30 +09:00
Jurko Gospodnetić e233fe5fff update project release notes 2014-05-14 13:51:50 +02:00
Jurko Gospodnetić 84dde1de8e fix error reported after running 'setup.py test' on Python 3.1 2014-05-14 12:19:48 +02:00
Jurko Gospodnetić fa8b3a5131 test the project in additional Python environments
Note that setting up some of the supported older Python environments requires
manual tweaking that has not yet been automated anywhere or described in detail
in the project's HACKING docs.
2014-05-14 09:41:10 +02:00
Jurko Gospodnetić 45c0486d51 refactor run_all_tests.cmd to reduce code duplication 2014-05-14 09:27:23 +02:00
Jurko Gospodnetić ba2df799a7 document setting up the Python 3.1.x testing and development environments 2014-05-14 09:22:59 +02:00
Jurko Gospodnetić f8245655b9 reorganize HACKING.rst docs into multiple separate sections
All sections now linked to from the top of the file.

The whole document will require further work, but for now, at least the
sections are consistently named, separated & linked to (even if they are not yet
positioned in a completely logical order).
2014-05-12 15:23:24 +02:00
Jurko Gospodnetić f24e81523b store correct maintainer name in PKG-INFO meta data where possible
Python [3.0, 3.2.2> distutils implementation writes package meta-data using
the user's local environment encoding instead of UTF-8. Since the maintainer's
name contains a non-ASCII character - this can cause problems if the user's
local encoding does not support it. In order to avoid such issues, we convert
the name to a similar ASCII-character-only variant, but now we do so only when
using such older Python 3.x releases.
2014-05-12 15:03:41 +02:00
Jurko Gospodnetić 9f408bb855 clean up minor stylistic coding detail in setup.py 2014-05-12 14:54:33 +02:00
Jurko Gospodnetić f6c7780fce fix installation on Python 3.1 - work around inspect.getmodule() failing
Python 3.x versions prior to Python 3.2.3 have a bug in their inspect module
causing inspect.getmodule() calls to fail if some module lazy loads other
modules when some of its attributes are accessed. For more detailed information
see Python development issue #13487 (http://bugs.python.org/issue13487).

This occurs when using setuptools to install our project into a Python 3.1
environment. There py.error module seems to do such lazy loading which we force
done here before the setuptools installation procedure to avoid the issue.
2014-05-12 14:51:59 +02:00
Jurko Gospodnetić 76e1e4e124 fix installation on Python 3.1 - disable automated setuptools installation
Since one of setuptools project's test modules contains a UTF-8 BOM, it will
fail to install cleanly on Python versions [3.0 - 3.2> where the py2to3 tool
will not know how to process such files. 'setuptools' can still be installed by
running its ez_setup.py installation script manually (this will report and
ignore the py2to3 error), but attempting to install it using the
ez_setup.use_setuptools() function causes our whole setup to fail.

An embedded code comment explains how this workaround can be further improved,
should anyone feel so inclined, but for now, we simply report a warning and
instruct the user to install setuptool manually if needed.
2014-05-12 14:48:09 +02:00
Jurko Gospodnetić 0a34333f43 fix installation on Python 3.1 - project source files containing UTF-8 BOM
py2to3 does not support reading source files with an explicitly specified UTF-8
BOM prior to Python 3.2. This was causing errors when using it to process two
of our project files.

Updated relevant HACKING.rst documentation.
2014-05-12 11:02:17 +02:00
Jurko Gospodnetić 841255d941 correct docstring line wrapping 2014-05-11 13:33:51 +02:00
Jurko Gospodnetić 0734c56b6b update ez_setup.py to version from setuptools 3.6
Updated related README.rst project docs.
2014-05-11 13:30:00 +02:00
Jurko Gospodnetić 8dfe54fd14 mark Python 3.0 minor release as an unsupported Python version
Added relevant HACKING docs.
setup.py now exits with a clean error message when run using Python 3.0.
Python 3.0 removed from a list of supported Python versions stored in the
project's meta-data.
2014-05-04 22:18:22 +02:00
Jurko Gospodnetić b7eb2dc83f HACKING.rst documentation stylistic changes 2014-05-12 10:49:43 +02:00
Jurko Gospodnetić c51bfb77c9 document installation issue when using pip with older setuptools
When using a pip to install our product into a Python environment with an
existing setuptools installation older than the one used in our project - the
installation will fail and require that the user manually upgrade the existing
setuptools installation.

The issue has already been fixed in the current development version by no longer
requiring a specific setuptools version.
2014-05-04 22:17:26 +02:00
Jurko Gospodnetić 71b5bcbb86 correct stylistic comment typo 2014-04-28 14:09:48 +02:00
Jurko Gospodnetić ebb560406d remove the strict setup.py --> setuptools dependency
setup.py will now attempt to use setuptools if available (there is no version
check for preinstalled setuptools), and if not - attempts to install its own
tested setuptools version after downloading it from PyPI. If all attempts to
use setuptools fail, setup.py will fall back on using distutils with a bit
reduced functionality.

See extensive in-code comments for more detailed information on all the
setuptools related functionality, as well as the rationale behind choosing the
current setuptools usage design.
2014-04-26 19:21:50 +02:00
Jurko Gospodnetić 4d5ff7f626 improve setup.py test command
- now works correctly even on Python 2.4.x where it needs to be careful about
  what exact pytest and py library versions it needs to install
- if setup.py test command can not be used, it now reports the reason as its
  description (displayed using 'setup.py --help-commands') and as a clear
  end-user error message when run
- improved the setup.py test command description when used on Python 3+
2014-04-26 19:10:27 +02:00
Jurko Gospodnetić b6274ace9a implement a replacement for setuptools.find_packages()
Part of the work to reduce the setup.py --> setuptools dependency.
2014-04-26 18:47:27 +02:00
Jurko Gospodnetić 11068780f7 inline pkg_resources.safe_version() to reduce setup.py setuptools dependency 2014-04-26 18:45:05 +02:00
Jurko Gospodnetić dae52c77da make setup.py exit with a clean error message if run using Python prior to 2.4 2014-04-26 18:42:49 +02:00
Jurko Gospodnetić 46dc33aa44 stylistic setup.py cleanup
- split up the implementation into separate & commented sections
- improved internal implementation comments including the main module docstring
- updated the documented module author
- converted to UTF-8 encoding
- lots of minor stylistic changes
2014-04-26 18:41:34 +02:00
Jurko Gospodnetić a1fdbf8f38 update ez_setup.py script to the latest available version (setuptools 3.4.4) 2014-04-26 10:24:40 +02:00
Jurko Gospodnetić df175f2273 internal development operations care less about backward compatibility
Operations such as setup.py support for uploading a new project distribution
package to PyPI need to be supported on the latest Python 2 & 3 releases only
and no additional backward compatibility is either tested or guaranteed for
them.
2014-04-26 02:37:43 +02:00
Jurko Gospodnetić 8d821522b0 extract the hacking docs' Python compatibility notes into a separate section
Also removed some duplicate development & testing environment related notes.
2014-04-26 02:34:05 +02:00
Jurko Gospodnetić 8069654cfd update the 'development & testing environment' project hacking docs section
* documented the minimum required pytest version - 2.4.0
* noted the display problems when running tests using Python 2.4 on Windows
* added more detailed notes on setting up the Python 2.4.3 project development
  environment
* removed some duplicate content
* stylistic cleanup
2014-04-26 02:27:12 +02:00
Jurko Gospodnetić 7bd14ad666 document the --pdb pytest command-line option 2014-04-26 02:17:15 +02:00
Jurko Gospodnetić 080383ae89 project does not need to be re-registered on PyPI with every release 2014-04-26 02:16:40 +02:00