From d4a6f14840a711b6b012598e0dae088d85ae22a6 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Tue, 26 Feb 2019 17:24:43 +0900 Subject: tox.ini / requirements: Separated coverage requirements Since coverage is optional, lets make it really optional. --- requirements/cov-requirements.in | 2 ++ requirements/cov-requirements.txt | 11 +++++++++++ requirements/dev-requirements.in | 2 -- requirements/dev-requirements.txt | 24 ++++++++++++------------ tox.ini | 2 ++ 5 files changed, 27 insertions(+), 14 deletions(-) create mode 100644 requirements/cov-requirements.in create mode 100644 requirements/cov-requirements.txt diff --git a/requirements/cov-requirements.in b/requirements/cov-requirements.in new file mode 100644 index 000000000..455b91ba6 --- /dev/null +++ b/requirements/cov-requirements.in @@ -0,0 +1,2 @@ +coverage == 4.4.0 +pytest-cov >= 2.5.0 diff --git a/requirements/cov-requirements.txt b/requirements/cov-requirements.txt new file mode 100644 index 000000000..843df85f3 --- /dev/null +++ b/requirements/cov-requirements.txt @@ -0,0 +1,11 @@ +coverage==4.4 +pytest-cov==2.6.1 +## The following requirements were added by pip freeze: +atomicwrites==1.3.0 +attrs==18.2.0 +more-itertools==6.0.0 +pathlib2==2.3.3 +pluggy==0.9.0 +py==1.8.0 +pytest==4.3.0 +six==1.12.0 diff --git a/requirements/dev-requirements.in b/requirements/dev-requirements.in index 9edb23423..8b871073b 100644 --- a/requirements/dev-requirements.in +++ b/requirements/dev-requirements.in @@ -1,8 +1,6 @@ -coverage == 4.4.0 pylint pycodestyle pytest >= 3.9 -pytest-cov >= 2.5.0 pytest-datafiles >= 2.0 pytest-env pytest-xdist diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index c34f6db12..d8039c316 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -1,25 +1,25 @@ -coverage==4.4 pylint==2.2.2 -pycodestyle==2.4.0 -pytest==4.0.2 -pytest-cov==2.6.1 +pycodestyle==2.5.0 +pytest==4.3.0 pytest-datafiles==2.0 pytest-env==0.6.2 -pytest-xdist==1.25.0 +pytest-xdist==1.26.1 pytest-timeout==1.3.3 pyftpdlib==1.5.4 ## The following requirements were added by pip freeze: apipkg==1.5 astroid==2.1.0 -atomicwrites==1.2.1 +atomicwrites==1.3.0 attrs==18.2.0 execnet==1.5.0 -isort==4.3.4 +isort==4.3.9 lazy-object-proxy==1.3.1 mccabe==0.6.1 -more-itertools==5.0.0 -pluggy==0.8.0 -py==1.7.0 -pytest-forked==0.2 +more-itertools==6.0.0 +pathlib2==2.3.3 +pluggy==0.9.0 +py==1.8.0 +pytest-forked==1.0.2 six==1.12.0 -wrapt==1.10.11 +typed-ast==1.3.1 +wrapt==1.11.1 diff --git a/tox.ini b/tox.ini index 97de44602..6fced4f51 100644 --- a/tox.ini +++ b/tox.ini @@ -18,6 +18,7 @@ commands = deps = -rrequirements/requirements.txt -rrequirements/dev-requirements.txt + -rrequirements/cov-requirements.txt -rrequirements/plugin-requirements.txt passenv = BST_FORCE_BACKEND @@ -44,6 +45,7 @@ commands = deps = -rrequirements/requirements.txt -rrequirements/dev-requirements.txt + -rrequirements/cov-requirements.txt setenv = COVERAGE_FILE = {toxinidir}/.coverage-reports/.coverage -- cgit v1.2.1 From eb6d169033c73b80b943c281c6002761146f2393 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Wed, 27 Feb 2019 23:12:33 +0900 Subject: setup.cfg, tox.ini: Moved coverage support to the tox.ini level This disables any attempt to use coverage when running tests directly against installed dependencies with setup.py. This fixes #916 --- setup.cfg | 2 +- tox.ini | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.cfg b/setup.cfg index ec20435ce..ca623aa4b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -11,7 +11,7 @@ parentdir_prefix = BuildStream- test=pytest [tool:pytest] -addopts = --verbose --basetemp ./tmp --cov=buildstream --cov-config .coveragerc --durations=20 +addopts = --verbose --basetemp ./tmp --durations=20 norecursedirs = tests/integration/project integration-cache tmp __pycache__ .eggs python_files = tests/*/*.py env = diff --git a/tox.ini b/tox.ini index 6fced4f51..a54dc55b1 100644 --- a/tox.ini +++ b/tox.ini @@ -12,7 +12,7 @@ skip_missing_interpreters = true # [testenv] commands = - pytest --basetemp {envtmpdir} {posargs} + pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs} - mkdir -p .coverage-reports - mv {envtmpdir}/.coverage {toxinidir}/.coverage-reports/.coverage.{env:COVERAGE_PREFIX:}{envname} deps = -- cgit v1.2.1 From 8e87af7a77c68de0ce1428d425ff6e76d11c1c38 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Wed, 27 Feb 2019 23:14:58 +0900 Subject: tox.ini: Support running tests without coverage present at all This change simply makes it possible to run the tests without coverage and without any coverage related dependencies present in the tox venvs. To run tests without coverage, simply choose the python version and append "-nocover" to the env name, e.g.: tox -e py36-nocover --- tox.ini | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/tox.ini b/tox.ini index a54dc55b1..78e491973 100644 --- a/tox.ini +++ b/tox.ini @@ -12,14 +12,20 @@ skip_missing_interpreters = true # [testenv] commands = - pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs} - - mkdir -p .coverage-reports - - mv {envtmpdir}/.coverage {toxinidir}/.coverage-reports/.coverage.{env:COVERAGE_PREFIX:}{envname} + # Running with coverage reporting enabled + py{35,36,37}-!nocover: pytest --basetemp {envtmpdir} --cov=buildstream --cov-config .coveragerc {posargs} + py{35,36,37}-!nocover: mkdir -p .coverage-reports + py{35,36,37}-!nocover: mv {envtmpdir}/.coverage {toxinidir}/.coverage-reports/.coverage.{env:COVERAGE_PREFIX:}{envname} + + # Running with coverage reporting disabled + py{35,36,37}-nocover: pytest --basetemp {envtmpdir} {posargs} deps = - -rrequirements/requirements.txt - -rrequirements/dev-requirements.txt - -rrequirements/cov-requirements.txt - -rrequirements/plugin-requirements.txt + py{35,36,37}: -rrequirements/requirements.txt + py{35,36,37}: -rrequirements/dev-requirements.txt + py{35,36,37}: -rrequirements/plugin-requirements.txt + + # Only require coverage and pytest-cov when using it + !nocover: -rrequirements/cov-requirements.txt passenv = BST_FORCE_BACKEND GI_TYPELIB_PATH -- cgit v1.2.1 From 147bac3c22cd79f67edb90b2af96a9669615d048 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Thu, 28 Feb 2019 14:38:20 +0900 Subject: .gitlab-ci.yml: Adding tox --version output to test diagnostics This is generally useful to know, since the tox version is not enforced by BuildStream. --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5af7013b6..579656198 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -29,6 +29,7 @@ variables: # Diagnostics - mount - df -h + - tox --version script: - mkdir -p "${INTEGRATION_CACHE}" @@ -157,6 +158,7 @@ tests-wsl: before_script: - mount - df -h + - tox --version script: - "${TEST_COMMAND}" -- cgit v1.2.1 From def4c10babd2e229b2207914999ca83ed3020f47 Mon Sep 17 00:00:00 2001 From: Tristan Van Berkom Date: Thu, 28 Feb 2019 15:37:26 +0900 Subject: .gitlab-ci.yml: Use recent tox There appears to be multiple versions of tox in the WSL test environment, prepending /root/.local/bin to the PATH while running tests ensures that we are using a recent enough tox to execute the tests. --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 579656198..cbfd44ec4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -158,10 +158,10 @@ tests-wsl: before_script: - mount - df -h - - tox --version + - PATH=/root/.local/bin:$PATH tox --version script: - - "${TEST_COMMAND}" + - PATH=/root/.local/bin:$PATH ${TEST_COMMAND} allow_failure: true # Automatically build documentation for every commit, we want to know -- cgit v1.2.1