Skip to content

Commit

Permalink
Fix win tests (uninstall pytest-xdist in CI)
Browse files Browse the repository at this point in the history
  • Loading branch information
craigds committed Sep 2, 2020
1 parent de6513d commit 5a936c2
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 80 deletions.
4 changes: 2 additions & 2 deletions Makefile
Expand Up @@ -184,15 +184,15 @@ endif

.PHONY: ci-test
ci-test:
pytest \
CI=true pytest \
-vv \
--log-level=DEBUG \
-p no:sugar \
--cov-report term \
--cov-report html:test-results/coverage/ \
--junit-xml=test-results/junit.xml \
--benchmark-enable \
--numprocesses=0
-p no:xdist

# Cleanup

Expand Down
3 changes: 2 additions & 1 deletion makefile.vc
Expand Up @@ -61,14 +61,15 @@ test: $(app) venv\.test.installed
pytest -v --cov-report term --cov-report html:coverage

ci-test:
set CI=true
pytest \
--verbose \
-p no:sugar \
--cov-report term \
--cov-report html:test-results\coverage/ \
--junit-xml=test-results\junit.xml \
--benchmark-enable \
--numprocesses=0
-p no:xdist

# Packaging

Expand Down
5 changes: 3 additions & 2 deletions requirements/dev.in
@@ -1,5 +1,6 @@
-r ../requirements.txt
-r test.txt
-c ../requirements.txt
-c test.txt

ipdb
ipython
pytest-xdist
70 changes: 22 additions & 48 deletions requirements/dev.txt
Expand Up @@ -4,63 +4,37 @@
#
# make py-requirements
#
apipkg==1.5 # via -r requirements/test.txt, execnet
apipkg==1.5 # via execnet
appnope==0.1.0 # via ipython
aspectlib==1.5.1 # via -r requirements/test.txt, pytest-benchmark
atomicwrites==1.4.0 # via -r requirements/test.txt
attrs==20.1.0 # via -r requirements/../requirements.txt, -r requirements/test.txt, jsonschema, pytest
attrs==20.1.0 # via -c requirements/../requirements.txt, -c requirements/test.txt, pytest
backcall==0.2.0 # via ipython
cached-property==1.5.1 # via -r requirements/../requirements.txt, -r requirements/test.txt
certifi==2020.6.20 # via -r requirements/../requirements.txt, -r requirements/test.txt
cffi==1.14.2 # via -r requirements/../requirements.txt, -r requirements/test.txt
click==7.1.2 # via -r requirements/../requirements.txt, -r requirements/test.txt
colorama==0.4.3 # via -r requirements/test.txt
coverage==5.2.1 # via -r requirements/test.txt, pytest-cov
decorator==4.4.2 # via ipython, traitlets
execnet==1.7.1 # via -r requirements/test.txt, pytest-xdist
fields==5.0.0 # via -r requirements/test.txt, aspectlib
gprof2dot==2019.11.30 # via -r requirements/test.txt, pytest-profiling
html5lib==1.1 # via -r requirements/test.txt
importlib-metadata==1.7.0 # via -r requirements/../requirements.txt, -r requirements/test.txt, jsonschema, pluggy, pytest
iniconfig==1.0.1 # via -r requirements/test.txt, pytest
decorator==4.4.2 # via ipython
execnet==1.7.1 # via pytest-xdist
importlib-metadata==1.7.0 # via -c requirements/../requirements.txt, -c requirements/test.txt, pluggy, pytest
iniconfig==1.0.1 # via -c requirements/test.txt, pytest
ipdb==0.13.3 # via -r requirements/dev.in
ipython-genutils==0.2.0 # via traitlets
ipython==7.17.0 # via -r requirements/dev.in, ipdb
ipython==7.18.1 # via -r requirements/dev.in, ipdb
jedi==0.17.2 # via ipython
jsonschema==3.2.0 # via -r requirements/../requirements.txt, -r requirements/test.txt
lovely-pytest-docker==0.1.0 # via -r requirements/test.txt
more-itertools==8.4.0 # via -r requirements/test.txt, pytest
msgpack==0.6.2 # via -r requirements/../requirements.txt, -r requirements/test.txt
packaging==20.4 # via -r requirements/test.txt, pytest, pytest-sugar
more-itertools==8.5.0 # via -c requirements/test.txt, pytest
packaging==20.4 # via -c requirements/test.txt, pytest
parso==0.7.1 # via jedi
pexpect==4.8.0 # via ipython
pickleshare==0.7.5 # via ipython
pluggy==0.13.1 # via -r requirements/test.txt, pytest
prompt-toolkit==3.0.6 # via ipython
psutil==5.7.2 # via -r requirements/test.txt, pytest-xdist
pluggy==0.13.1 # via -c requirements/test.txt, pytest
prompt-toolkit==3.0.7 # via ipython
ptyprocess==0.6.0 # via pexpect
py-cpuinfo==7.0.0 # via -r requirements/test.txt, pytest-benchmark
py==1.9.0 # via -r requirements/test.txt, pytest, pytest-forked
pycparser==2.20 # via -r requirements/../requirements.txt, -r requirements/test.txt, cffi
pygments==2.6.1 # via -r requirements/../requirements.txt, -r requirements/test.txt, ipython
pyparsing==2.4.7 # via -r requirements/test.txt, packaging
pyrsistent==0.16.0 # via -r requirements/../requirements.txt, -r requirements/test.txt, jsonschema
pytest-benchmark[aspect]==3.2.3 # via -r requirements/test.txt
pytest-cov==2.10.1 # via -r requirements/test.txt
pytest-forked==1.3.0 # via -r requirements/test.txt, pytest-xdist
pytest-helpers-namespace==2019.1.8 # via -r requirements/test.txt
pytest-profiling==1.7.0 # via -r requirements/test.txt
pytest-sugar==0.9.4 # via -r requirements/test.txt
pytest-xdist==2.0.0 # via -r requirements/test.txt
pytest==6.0.1 # via -r requirements/test.txt, lovely-pytest-docker, pytest-benchmark, pytest-cov, pytest-forked, pytest-helpers-namespace, pytest-profiling, pytest-sugar, pytest-xdist
rtree==0.9.4 # via -r requirements/../requirements.txt, -r requirements/test.txt
six==1.15.0 # via -r requirements/../requirements.txt, -r requirements/test.txt, html5lib, jsonschema, packaging, pyrsistent, pytest-profiling, traitlets
termcolor==1.1.0 # via -r requirements/test.txt, pytest-sugar
toml==0.10.1 # via -r requirements/test.txt, pytest
traitlets==4.3.3 # via ipython
py==1.9.0 # via -c requirements/test.txt, pytest, pytest-forked
pygments==2.6.1 # via -c requirements/../requirements.txt, ipython
pyparsing==2.4.7 # via -c requirements/test.txt, packaging
pytest-forked==1.3.0 # via pytest-xdist
pytest-xdist==2.1.0 # via -r requirements/dev.in
pytest==6.0.1 # via -c requirements/test.txt, pytest-forked, pytest-xdist
six==1.15.0 # via -c requirements/../requirements.txt, -c requirements/test.txt, packaging
toml==0.10.1 # via -c requirements/test.txt, pytest
traitlets==5.0.0 # via ipython
wcwidth==0.2.5 # via prompt-toolkit
webencodings==0.5.1 # via -r requirements/test.txt, html5lib
zipp==3.1.0 # via -r requirements/../requirements.txt, -r requirements/test.txt, importlib-metadata
zipp==3.1.0 # via -c requirements/../requirements.txt, -c requirements/test.txt, importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
setuptools==49.1.3 # via -r requirements/../requirements.txt, -r requirements/test.txt, ipdb, ipython, jsonschema, rtree
setuptools==49.1.3 # via -c requirements/../requirements.txt, ipdb, ipython
3 changes: 1 addition & 2 deletions requirements/test.in
@@ -1,4 +1,4 @@
-r ../requirements.txt
-c ../requirements.txt

pytest
# pytest 6+ depends on these on windows, but we generally run pip-compile on macOS...
Expand All @@ -10,6 +10,5 @@ pytest-sugar
pytest-helpers-namespace
pytest-benchmark[aspect]
pytest-profiling
pytest-xdist
lovely-pytest-docker
html5lib
32 changes: 7 additions & 25 deletions requirements/test.txt
Expand Up @@ -4,49 +4,31 @@
#
# make py-requirements
#
apipkg==1.5 # via execnet
aspectlib==1.5.1 # via pytest-benchmark
atomicwrites==1.4.0 # via -r requirements/test.in
attrs==20.1.0 # via -r requirements/../requirements.txt, jsonschema, pytest
cached-property==1.5.1 # via -r requirements/../requirements.txt
certifi==2020.6.20 # via -r requirements/../requirements.txt
cffi==1.14.2 # via -r requirements/../requirements.txt
click==7.1.2 # via -r requirements/../requirements.txt
attrs==20.1.0 # via -c requirements/../requirements.txt, pytest
colorama==0.4.3 # via -r requirements/test.in
coverage==5.2.1 # via pytest-cov
execnet==1.7.1 # via pytest-xdist
fields==5.0.0 # via aspectlib
gprof2dot==2019.11.30 # via pytest-profiling
html5lib==1.1 # via -r requirements/test.in
importlib-metadata==1.7.0 # via -r requirements/../requirements.txt, jsonschema, pluggy, pytest
importlib-metadata==1.7.0 # via -c requirements/../requirements.txt, pluggy, pytest
iniconfig==1.0.1 # via pytest
jsonschema==3.2.0 # via -r requirements/../requirements.txt
lovely-pytest-docker==0.1.0 # via -r requirements/test.in
more-itertools==8.4.0 # via pytest
msgpack==0.6.2 # via -r requirements/../requirements.txt
more-itertools==8.5.0 # via pytest
packaging==20.4 # via pytest, pytest-sugar
pluggy==0.13.1 # via pytest
psutil==5.7.2 # via pytest-xdist
py-cpuinfo==7.0.0 # via pytest-benchmark
py==1.9.0 # via pytest, pytest-forked
pycparser==2.20 # via -r requirements/../requirements.txt, cffi
pygments==2.6.1 # via -r requirements/../requirements.txt
py==1.9.0 # via pytest
pyparsing==2.4.7 # via packaging
pyrsistent==0.16.0 # via -r requirements/../requirements.txt, jsonschema
pytest-benchmark[aspect]==3.2.3 # via -r requirements/test.in
pytest-cov==2.10.1 # via -r requirements/test.in
pytest-forked==1.3.0 # via pytest-xdist
pytest-helpers-namespace==2019.1.8 # via -r requirements/test.in
pytest-profiling==1.7.0 # via -r requirements/test.in
pytest-sugar==0.9.4 # via -r requirements/test.in
pytest-xdist==2.0.0 # via -r requirements/test.in
pytest==6.0.1 # via -r requirements/test.in, lovely-pytest-docker, pytest-benchmark, pytest-cov, pytest-forked, pytest-helpers-namespace, pytest-profiling, pytest-sugar, pytest-xdist
rtree==0.9.4 # via -r requirements/../requirements.txt
six==1.15.0 # via -r requirements/../requirements.txt, html5lib, jsonschema, packaging, pyrsistent, pytest-profiling
pytest==6.0.1 # via -r requirements/test.in, lovely-pytest-docker, pytest-benchmark, pytest-cov, pytest-helpers-namespace, pytest-profiling, pytest-sugar
six==1.15.0 # via -c requirements/../requirements.txt, html5lib, packaging, pytest-profiling
termcolor==1.1.0 # via pytest-sugar
toml==0.10.1 # via pytest
webencodings==0.5.1 # via html5lib
zipp==3.1.0 # via -r requirements/../requirements.txt, importlib-metadata

# The following packages are considered to be unsafe in a requirements file:
setuptools==49.1.3 # via -r requirements/../requirements.txt, jsonschema, rtree
zipp==3.1.0 # via -c requirements/../requirements.txt, importlib-metadata
11 changes: 11 additions & 0 deletions tests/conftest.py
Expand Up @@ -29,6 +29,17 @@


def pytest_addoption(parser):
if 'CI' in os.environ:
# pytest.ini sets --numprocesses=auto
# for parallelism in local dev.
# But in CI we disable xdist because it causes a crash in windows builds.
# (simply doing --numprocesses=0 is insufficient; the plugin needs to be
# disabled completely)
# However, there's no way to *remove* an option that's in pytest.ini's addopts.
# So here we just define the option so it parses, and then ignore it.
parser.addoption(
"--numprocesses", action="store", default=0, help="<ignored>",
)
parser.addoption(
"--preserve-data",
action="store_true",
Expand Down

0 comments on commit 5a936c2

Please sign in to comment.