Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
120 changes: 32 additions & 88 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,157 +21,101 @@ jobs:
- env: TOXENV=docs

- stage: tests
env: TOXENV=py27-pytest310-xdist27-coverage45
python: '2.7'
- env: TOXENV=py27-pytest46-xdist27-coverage45
python: '2.7'
- env: TOXENV=py35-pytest310-xdist27-coverage45
python: '3.5'
- env: TOXENV=py35-pytest46-xdist27-coverage45
python: '3.5'
- env: TOXENV=py36-pytest310-xdist27-coverage45
python: '3.6'
- env: TOXENV=py36-pytest46-xdist27-coverage45
python: '3.6'
- env: TOXENV=py37-pytest310-xdist27-coverage45
python: '3.7'
- env: TOXENV=py37-pytest46-xdist27-coverage45
python: '3.7'
- env: TOXENV=pypy-pytest310-xdist27-coverage45
python: 'pypy'
- env: TOXENV=pypy-pytest46-xdist27-coverage45
python: 'pypy'
- env: TOXENV=pypy3-pytest310-xdist27-coverage45
python: 'pypy3'
- env: TOXENV=pypy3-pytest46-xdist27-coverage45
python: 'pypy3'
- env: TOXENV=py27-pytest310-xdist27-coverage50
env: TOXENV=py27-pytest46-xdist27-coverage45
python: '2.7'
- env: TOXENV=py27-pytest46-xdist27-coverage50
python: '2.7'
- env: TOXENV=py35-pytest310-xdist27-coverage50
- env: TOXENV=py35-pytest46-xdist27-coverage45
python: '3.5'
- env: TOXENV=py35-pytest46-xdist27-coverage50
python: '3.5'
- env: TOXENV=py36-pytest310-xdist27-coverage50
- env: TOXENV=py36-pytest46-xdist27-coverage45
python: '3.6'
- env: TOXENV=py36-pytest46-xdist27-coverage50
python: '3.6'
- env: TOXENV=py37-pytest310-xdist27-coverage50
- env: TOXENV=py37-pytest46-xdist27-coverage45
python: '3.7'
- env: TOXENV=py37-pytest46-xdist27-coverage50
python: '3.7'
- env: TOXENV=pypy-pytest310-xdist27-coverage50
- env: TOXENV=pypy-pytest46-xdist27-coverage45
python: 'pypy'
- env: TOXENV=pypy-pytest46-xdist27-coverage50
python: 'pypy'
- env: TOXENV=pypy3-pytest310-xdist27-coverage50
- env: TOXENV=pypy3-pytest46-xdist27-coverage45
python: 'pypy3'
- env: TOXENV=pypy3-pytest46-xdist27-coverage50
python: 'pypy3'
- env: TOXENV=py36-pytest46-xdist29-coverage45
python: '3.6'
- env: TOXENV=py36-pytest46-xdist29-coverage50
python: '3.6'
- env: TOXENV=py36-pytest46-xdist30-coverage45
python: '3.6'
- env: TOXENV=py36-pytest46-xdist30-coverage50
python: '3.6'
- env: TOXENV=py36-pytest51-xdist29-coverage45
python: '3.6'
- env: TOXENV=py36-pytest51-xdist29-coverage50
- env: TOXENV=py36-pytest46-xdist31-coverage45
python: '3.6'
- env: TOXENV=py36-pytest51-xdist30-coverage45
- env: TOXENV=py36-pytest46-xdist31-coverage50
python: '3.6'
- env: TOXENV=py36-pytest51-xdist30-coverage50
- env: TOXENV=py36-pytest53-xdist29-coverage45
python: '3.6'
- env: TOXENV=py36-pytest52-xdist29-coverage45
- env: TOXENV=py36-pytest53-xdist29-coverage50
python: '3.6'
- env: TOXENV=py36-pytest52-xdist29-coverage50
- env: TOXENV=py36-pytest53-xdist31-coverage45
python: '3.6'
- env: TOXENV=py36-pytest52-xdist30-coverage45
python: '3.6'
- env: TOXENV=py36-pytest52-xdist30-coverage50
- env: TOXENV=py36-pytest53-xdist31-coverage50
python: '3.6'
- env: TOXENV=py37-pytest46-xdist29-coverage45
python: '3.7'
- env: TOXENV=py37-pytest46-xdist29-coverage50
python: '3.7'
- env: TOXENV=py37-pytest46-xdist30-coverage45
python: '3.7'
- env: TOXENV=py37-pytest46-xdist30-coverage50
python: '3.7'
- env: TOXENV=py37-pytest51-xdist29-coverage45
python: '3.7'
- env: TOXENV=py37-pytest51-xdist29-coverage50
python: '3.7'
- env: TOXENV=py37-pytest51-xdist30-coverage45
- env: TOXENV=py37-pytest46-xdist31-coverage45
python: '3.7'
- env: TOXENV=py37-pytest51-xdist30-coverage50
- env: TOXENV=py37-pytest46-xdist31-coverage50
python: '3.7'
- env: TOXENV=py37-pytest52-xdist29-coverage45
- env: TOXENV=py37-pytest53-xdist29-coverage45
python: '3.7'
- env: TOXENV=py37-pytest52-xdist29-coverage50
- env: TOXENV=py37-pytest53-xdist29-coverage50
python: '3.7'
- env: TOXENV=py37-pytest52-xdist30-coverage45
- env: TOXENV=py37-pytest53-xdist31-coverage45
python: '3.7'
- env: TOXENV=py37-pytest52-xdist30-coverage50
- env: TOXENV=py37-pytest53-xdist31-coverage50
python: '3.7'
- env: TOXENV=py38-pytest46-xdist29-coverage45
python: '3.8'
- env: TOXENV=py38-pytest46-xdist29-coverage50
python: '3.8'
- env: TOXENV=py38-pytest46-xdist30-coverage45
- env: TOXENV=py38-pytest46-xdist31-coverage45
python: '3.8'
- env: TOXENV=py38-pytest46-xdist30-coverage50
- env: TOXENV=py38-pytest46-xdist31-coverage50
python: '3.8'
- env: TOXENV=py38-pytest51-xdist29-coverage45
- env: TOXENV=py38-pytest53-xdist29-coverage45
python: '3.8'
- env: TOXENV=py38-pytest51-xdist29-coverage50
- env: TOXENV=py38-pytest53-xdist29-coverage50
python: '3.8'
- env: TOXENV=py38-pytest51-xdist30-coverage45
- env: TOXENV=py38-pytest53-xdist31-coverage45
python: '3.8'
- env: TOXENV=py38-pytest51-xdist30-coverage50
python: '3.8'
- env: TOXENV=py38-pytest52-xdist29-coverage45
python: '3.8'
- env: TOXENV=py38-pytest52-xdist29-coverage50
python: '3.8'
- env: TOXENV=py38-pytest52-xdist30-coverage45
python: '3.8'
- env: TOXENV=py38-pytest52-xdist30-coverage50
- env: TOXENV=py38-pytest53-xdist31-coverage50
python: '3.8'
- env: TOXENV=pypy3-pytest46-xdist29-coverage45
python: 'pypy3'
- env: TOXENV=pypy3-pytest46-xdist29-coverage50
python: 'pypy3'
- env: TOXENV=pypy3-pytest46-xdist30-coverage45
python: 'pypy3'
- env: TOXENV=pypy3-pytest46-xdist30-coverage50
- env: TOXENV=pypy3-pytest46-xdist31-coverage45
python: 'pypy3'
- env: TOXENV=pypy3-pytest51-xdist29-coverage45
- env: TOXENV=pypy3-pytest46-xdist31-coverage50
python: 'pypy3'
- env: TOXENV=pypy3-pytest51-xdist29-coverage50
- env: TOXENV=pypy3-pytest53-xdist29-coverage45
python: 'pypy3'
- env: TOXENV=pypy3-pytest51-xdist30-coverage45
- env: TOXENV=pypy3-pytest53-xdist29-coverage50
python: 'pypy3'
- env: TOXENV=pypy3-pytest51-xdist30-coverage50
- env: TOXENV=pypy3-pytest53-xdist31-coverage45
python: 'pypy3'
- env: TOXENV=pypy3-pytest52-xdist29-coverage45
python: 'pypy3'
- env: TOXENV=pypy3-pytest52-xdist29-coverage50
python: 'pypy3'
- env: TOXENV=pypy3-pytest52-xdist30-coverage45
python: 'pypy3'
- env: TOXENV=pypy3-pytest52-xdist30-coverage50
- env: TOXENV=pypy3-pytest53-xdist31-coverage50
python: 'pypy3'

- stage: examples
python: '3.6'
python: '3.8'
script: cd $TARGET; tox -v
env:
- TARGET=examples/src-layout
- python: '3.6'
- python: '3.8'
script: cd $TARGET; tox -v
env:
- TARGET=examples/adhoc-layout
Expand Down
10 changes: 5 additions & 5 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ build: off
environment:
matrix:
- TOXENV: check
- TOXENV: 'py27-pytest310-xdist27-coverage45,py27-pytest46-xdist27-coverage45,py27-pytest310-xdist27-coverage50,py27-pytest46-xdist27-coverage50'
- TOXENV: 'py35-pytest310-xdist27-coverage45,py35-pytest46-xdist27-coverage45,py35-pytest310-xdist27-coverage50,py35-pytest46-xdist27-coverage50'
- TOXENV: 'py36-pytest310-xdist27-coverage45,py36-pytest46-xdist27-coverage45,py36-pytest310-xdist27-coverage50,py36-pytest46-xdist27-coverage50,py36-pytest46-xdist29-coverage45,py36-pytest46-xdist29-coverage50,py36-pytest46-xdist30-coverage45,py36-pytest46-xdist30-coverage50,py36-pytest51-xdist29-coverage45,py36-pytest51-xdist29-coverage50,py36-pytest51-xdist30-coverage45,py36-pytest51-xdist30-coverage50,py36-pytest52-xdist29-coverage45,py36-pytest52-xdist29-coverage50,py36-pytest52-xdist30-coverage45,py36-pytest52-xdist30-coverage50'
- TOXENV: 'py37-pytest310-xdist27-coverage45,py37-pytest46-xdist27-coverage45,py37-pytest310-xdist27-coverage50,py37-pytest46-xdist27-coverage50,py37-pytest46-xdist29-coverage45,py37-pytest46-xdist29-coverage50,py37-pytest46-xdist30-coverage45,py37-pytest46-xdist30-coverage50,py37-pytest51-xdist29-coverage45,py37-pytest51-xdist29-coverage50,py37-pytest51-xdist30-coverage45,py37-pytest51-xdist30-coverage50,py37-pytest52-xdist29-coverage45,py37-pytest52-xdist29-coverage50,py37-pytest52-xdist30-coverage45,py37-pytest52-xdist30-coverage50'
- TOXENV: 'pypy-pytest310-xdist27-coverage45,pypy-pytest46-xdist27-coverage45,pypy-pytest310-xdist27-coverage50,pypy-pytest46-xdist27-coverage50'
- TOXENV: 'py27-pytest46-xdist27-coverage45,py27-pytest46-xdist27-coverage50'
- TOXENV: 'py35-pytest46-xdist27-coverage45,py35-pytest46-xdist27-coverage50'
- TOXENV: 'py36-pytest46-xdist27-coverage45,py36-pytest46-xdist27-coverage50,py36-pytest46-xdist29-coverage45,py36-pytest46-xdist29-coverage50,py36-pytest46-xdist31-coverage45,py36-pytest46-xdist31-coverage50,py36-pytest53-xdist29-coverage45,py36-pytest53-xdist29-coverage50,py36-pytest53-xdist31-coverage45,py36-pytest53-xdist31-coverage50'
- TOXENV: 'py37-pytest46-xdist27-coverage45,py37-pytest46-xdist27-coverage50,py37-pytest46-xdist29-coverage45,py37-pytest46-xdist29-coverage50,py37-pytest46-xdist31-coverage45,py37-pytest46-xdist31-coverage50,py37-pytest53-xdist29-coverage45,py37-pytest53-xdist29-coverage50,py37-pytest53-xdist31-coverage45,py37-pytest53-xdist31-coverage50'
- TOXENV: 'pypy-pytest46-xdist27-coverage45,pypy-pytest46-xdist27-coverage50'

init:
- ps: echo $env:TOXENV
Expand Down
2 changes: 1 addition & 1 deletion ci/templates/.travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
- stage: examples
{%- for example in ['src', 'adhoc'] %}{{ '' }}
{%+ if not loop.first %}- {% else %} {% endif -%}
python: '3.6'
python: '3.8'
script: cd $TARGET; tox -v
env:
- TARGET=examples/{{ example }}-layout
Expand Down
6 changes: 3 additions & 3 deletions docs/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
sphinx==1.5.6 # rq.filter: >=1.3,<1.6
sphinx-py3doc-enhanced-theme
docutils==0.13.1
sphinx==2.3.1
sphinx-py3doc-enhanced-theme==2.4.0
docutils==0.16
-e .
11 changes: 6 additions & 5 deletions examples/adhoc-layout/tox.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tox]
envlist = clean,py27,py36,report
envlist = clean,py27,py38,report

[tool:pytest]
addopts =
Expand All @@ -10,21 +10,22 @@ commands = pytest --cov --cov-append --cov-config={toxinidir}/.coveragerc {posar
deps =
pytest
pytest-cov
coverage<5
depends =
{py27,py36}: clean
report: py27,py36
{py27,py38}: clean
report: py27,py38

# note that this is necessary to prevent the tests importing the code from your badly laid project
changedir = tests

[testenv:report]
skip_install = true
deps = coverage
deps = coverage<5
commands =
coverage html
coverage report --fail-under=100

[testenv:clean]
skip_install = true
deps = coverage
deps = coverage<5
commands = coverage erase
11 changes: 6 additions & 5 deletions examples/src-layout/tox.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tox]
envlist = clean,py27,py36,report
envlist = clean,py27,py38,report

[tool:pytest]
testpaths = tests
Expand All @@ -11,18 +11,19 @@ commands = pytest --cov --cov-append {posargs:-vv}
deps =
pytest
pytest-cov
coverage<5
depends =
{py27,py36}: clean
report: py27,py36
{py27,py38}: clean
report: py27,py38

[testenv:report]
skip_install = true
deps = coverage
deps = coverage<5
commands =
coverage html
coverage report --fail-under=100

[testenv:clean]
skip_install = true
deps = coverage
deps = coverage<5
commands = coverage erase
9 changes: 4 additions & 5 deletions tests/test_pytest_cov.py
Original file line number Diff line number Diff line change
Expand Up @@ -680,8 +680,7 @@ def test_foo(foo):
'-n', '5', '-s',
script)
result.stdout.fnmatch_lines([
'*- coverage: platform *, python * -*',
'test_dist_combine_racecondition* 2002 * 0 * 100%*',
'test_dist_combine_racecondition* 0 * 100%*',
'*1000 passed*'
])

Expand Down Expand Up @@ -983,10 +982,8 @@ def test_dist_missing_data(testdir):
'--tx=popen//python=%s' % exe,
max_worker_restart_0,
script)

assert result.ret == 0
result.stdout.fnmatch_lines([
'*- coverage: failed workers -*'
'The following workers failed to return coverage data, ensure that pytest-cov is installed on these workers.'
])


Expand Down Expand Up @@ -1021,6 +1018,7 @@ def test_funcarg_not_active(testdir):
@pytest.mark.skipif("sys.version_info[0] < 3", reason="no context manager api on Python 2")
@pytest.mark.skipif('sys.platform == "win32"', reason="multiprocessing support is broken on Windows")
@pytest.mark.skipif('platform.python_implementation() == "PyPy"', reason="often deadlocks on PyPy")
@pytest.mark.skipif('sys.version_info[:2] == (3, 8)', reason="deadlocks on Python 3.8, see: https://bugs.python.org/issue38227")
def test_multiprocessing_pool(testdir):
pytest.importorskip('multiprocessing.util')

Expand Down Expand Up @@ -1061,6 +1059,7 @@ def test_run_target():

@pytest.mark.skipif('sys.platform == "win32"', reason="multiprocessing support is broken on Windows")
@pytest.mark.skipif('platform.python_implementation() == "PyPy"', reason="often deadlocks on PyPy")
@pytest.mark.skipif('sys.version_info[:2] == (3, 8)', reason="deadlocks on Python 3.8, see: https://bugs.python.org/issue38227")
def test_multiprocessing_pool_terminate(testdir):
pytest.importorskip('multiprocessing.util')

Expand Down
17 changes: 6 additions & 11 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@
[tox]
envlist =
check
py{27,35,36,37,py,py3}-pytest{310,46}-xdist27-coverage45
py{27,35,36,37,py,py3}-pytest{310,46}-xdist27-coverage50
py{36,37,38,py3}-pytest{46,51,52}-xdist{29,30}-coverage{45,50}
py{27,35,36,37,py,py3}-pytest46-xdist27-coverage{45,50}
py{36,37,38,py3}-pytest{46,53}-xdist{29,31}-coverage{45,50}
docs

[testenv]
Expand All @@ -14,21 +13,17 @@ setenv =
PYTHONUNBUFFERED=yes

# Use env vars for (optional) pinning of deps.
pytest310: _DEP_PYTEST=pytest==3.10.1
pytest46: _DEP_PYTEST=pytest==4.6.5
pytest51: _DEP_PYTEST=pytest==5.1.3
pytest52: _DEP_PYTEST=pytest==5.2.0
pytest46: _DEP_PYTEST=pytest==4.6.9
pytest53: _DEP_PYTEST=pytest==5.3.2

xdist27: _DEP_PYTESTXDIST=pytest-xdist==1.27.0
xdist28: _DEP_PYTESTXDIST=pytest-xdist==1.28.0
xdist29: _DEP_PYTESTXDIST=pytest-xdist==1.29.0
xdist30: _DEP_PYTESTXDIST=pytest-xdist==1.30.0
xdist31: _DEP_PYTESTXDIST=pytest-xdist==1.31.0

coverage45: _DEP_COVERAGE=coverage==4.5.4
coverage50: _DEP_COVERAGE=coverage==5.0b1
coverage50: _DEP_COVERAGE=coverage==5.0.3
# For testing against a coverage.py working tree.
coveragedev: _DEP_COVERAGE=-e{env:COVERAGE_HOME}

passenv =
*
deps =
Expand Down