1. Gustavo Picon
  2. tox-winpatch


tox-winpatch / ISSUES.txt

introduce package and setup.py less sdist creation

Example sections for tox itself::

    basename = pytest
    description = virtualenv-based automation of test activities
    authors = holger krekel <holger@merlinux.eu>
    url = http://tox.testrun.org
    entry_points = console_scripts: tox=tox:cmdline
    requires = py
    packages = 
    preuploadenvs = sphinx 

        Development Status :: 6 - Mature
        Intended Audience :: Developers
        License :: OSI Approved :: MIT License
        Topic :: Software Development :: Testing
        Topic :: Software Development :: Libraries
        Topic :: Utilities

This would generate three different packages:

- the main one containing the app with the specified description, etc.
  It has a test-requires pointing to the test package,
  which classifiers
- the test package only containing the tests and setup.py
  depending on the main package and all requirements collected from the
- the doc package containing generated html and txt files
  (to be installable via a setup.py as well?)

Here is what happens when tox is invoked now:

- version gets auto-incremented (in setup.py and $PACKAGE/__init__.py files)
- main setup.py generated, files copied, sdist generated
- test setup.py generated, files copied, sdist generated
- doc setup.py generated, doc environment run, files copied, sdist generated

- if --upload is specified, all packages are uploaded under 
  their respective names:

- tox --sync creates a test result file for the tests-tox-VER run
  and uploads it to testrun.org -- .tox/projectkeys contains a file that
  was created by visiting testrun.org and registering/logging in.

- download toxslave and execute it:

    toxslave --userkey=... [--project tox]

  which will query testrun.org for outstanding testruns
  [for the tox project], download packages, execute them 
  and report back to the server

merge tox and detox?

maybe it's time to merge it?

pyc files / test distributions

investigate pyc cleaning, see


allow config overlays

tags: 1.5 feature

You can specify wildcards in section titles.

    commands=py.test {posargs}
    use2to3 = True

    deps =

Configuration values are now looked up in a stricter-matches-first
manner: If environment "py32" is considered then first the 
section under py32, then py3*, then testenv. 

support 2to3 configurations / test file postprocessing

tags: 1.5 feature

Tests should be copied and transformed before being executed.
Setup a test definition::

    commands=py.test {posargs}
    use2to3 = True

would transform all specified test files for all py3 environments 
such that a subsequent test run::

    $ tox -e py25,py32 testing/test_hello.py

causes a transformation of the test files to prepare test runs on
Python3 interpreters.  The ``posargs`` specified files will be rewritten
to point to the transformed test files.

export support for travis
tag: 1.6 feature

look into ways to support integration of tox with travis.

- run tox from travis
- let tox read commands from travis config
- generate .travis.yml from tox.ini
- generate tox.ini from .travis.yml

allow user-specific python interpreters

users should be able to define their set of python executables
to be used for creating virtualenvs.

non-cached test dependencies

if there is a dependency on a URL whose content changes
the download-cache mechanism will prevent it from being reloaded.
Introduce a 'nocache:' prefix which will inhibit using the cache.
Also make and document a guarantee on the deps order so that
one can influence the exact configuration (e.g. use a dev-version
of some package which a later dependency or the original
package depends upon - i.e. deps should be installed first).

test and make "in-pkg" tests work

it is common to put tests into pkg subdirs, possibly
even with an __init__.  See if/how this can be made
to work.  Maybe also re-consider how py.test does its
importing, maybe add a pytest_addsyspath(testmodule)
and look how nose does it in detail.