From 96506867d1acc4fea5671e93180c131f3656d172 Mon Sep 17 00:00:00 2001 From: Bruno Oliveira Date: Sat, 30 Jan 2016 12:19:52 -0200 Subject: [PATCH] Refactor tox and ci scripts Make sure a plain "tox" command works in all platforms without failures, which facilitates making releases using a "devpi upload/test" workflow * Fix small flakes failures * Limit py35 testing to pytest>=2.7, as pytest<2.7 does not work on py35 * pexpect environments only work on Linux platforms and should be skipped on Windows * Simplify AppVeyor script by running all tox environments: no need to have a build matrix because AppVeyor does not execute builds in parallel * Add all environments to travis.yml, obtained from "tox --listenvs" --- .travis.yml | 23 ++++++++++------------- appveyor.yml | 14 ++------------ testing/test_remote.py | 3 ++- tox.ini | 25 ++++++++++++++++--------- xdist/__init__.py | 3 ++- 5 files changed, 32 insertions(+), 36 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9f98e43..3f7910e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,31 +7,28 @@ install: "pip install -U tox setuptools_scm" # # command to run tests env: matrix: - - TESTENV=flakes - - TESTENV=readme - # matrix was trimmed to skip - # some builds that are unnecessary/perceived redundant: - # py27 and py35 are tested with all pytest versions we declare to support; - # py26 and py34 only with latest pytest versions. - # pytest24,25,26 don't work on py35 due to changes in ast module + # note: please use "tox --listenvs" to populate the build matrix + - TESTENV=py26-pytest24 + - TESTENV=py26-pytest25 + - TESTENV=py26-pytest26 - TESTENV=py26-pytest27 - TESTENV=py26-pytest28 - - TESTENV=py27-pytest24 - TESTENV=py27-pytest25 - TESTENV=py27-pytest26 - TESTENV=py27-pytest27 - TESTENV=py27-pytest28 - + - TESTENV=py34-pytest24 + - TESTENV=py34-pytest25 + - TESTENV=py34-pytest26 - TESTENV=py34-pytest27 - TESTENV=py34-pytest28 - - TESTENV=py35-pytest27 - TESTENV=py35-pytest28 - - TESTENV=py27-pytest28-pexpect - - TESTENV=py34-pytest28-pexpect - - TESTENV=pypy-pytest28 + - TESTENV=py35-pytest28-pexpect + - TESTENV=flakes + - TESTENV=readme script: tox --recreate -e $TESTENV diff --git a/appveyor.yml b/appveyor.yml index f7dd1d1..6c5f28a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,17 +1,7 @@ -environment: - matrix: - - PYTHON: "C:\\Python35" - TESTENV: "py35" - - - PYTHON: "C:\\Python27" - TESTENV: "py27" - install: - - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PATH%" - - pip install tox setuptools_scm" + - C:\Python35\python -m pip install tox setuptools_scm build: false # Not a C# project, build stuff at the test step instead. test_script: - # Build the compiled extension and run the project tests - - tox -e %TESTENV%-pytest27,%TESTENV%-pytest28,readme,flakes + - C:\Python35\python -m tox diff --git a/testing/test_remote.py b/testing/test_remote.py index 53dc2f2..7bac373 100644 --- a/testing/test_remote.py +++ b/testing/test_remote.py @@ -2,9 +2,10 @@ import py from xdist.slavemanage import SlaveController, unserialize_report from xdist.remote import serialize_report import execnet -queue = py.builtin._tryimport("queue", "Queue") import marshal +queue = py.builtin._tryimport("queue", "Queue") + WAIT_TIMEOUT = 10.0 diff --git a/tox.ini b/tox.ini index 66d2b4e..54fb438 100644 --- a/tox.ini +++ b/tox.ini @@ -1,20 +1,27 @@ [tox] +# if you change the envlist, please update .travis.yml file as well envlist= - py{26,27,34,35}-pytest2{4,5,6,7,8},py{27,34}-pytest28-pexpect,flakes,readme + py{26,27,34}-pytest2{4,5,6,7,8} + py35-pytest2{7,8} + py{27,35}-pytest28-pexpect + flakes + readme [testenv] changedir=testing passenv = USER USERNAME deps = - pycmd - setuptools_scm # to avoid .eggs - pytest24: pytest~=2.4.0 - pytest25: pytest~=2.5.0 - pytest26: pytest~=2.6.1 - pytest27: pytest~=2.7.2 - pytest28: pytest~=2.8.3 - pexpect: pexpect + pycmd + setuptools_scm # to avoid .eggs + pytest24: pytest~=2.4.0 + pytest25: pytest~=2.5.0 + pytest26: pytest~=2.6.1 + pytest27: pytest~=2.7.2 + pytest28: pytest~=2.8.3 + pexpect: pexpect +platform= + pexpect: linux|darwin commands= # always clean to avoid code unmarshal mismatch on old python/pytest py.cleanup -aq diff --git a/xdist/__init__.py b/xdist/__init__.py index 4e791df..7aa44d0 100644 --- a/xdist/__init__.py +++ b/xdist/__init__.py @@ -1,2 +1,3 @@ -__all__ = ['__version__'] from xdist._version import version as __version__ + +__all__ = ['__version__']