diff options
author | bst-marge-bot <marge-bot@buildstream.build> | 2019-03-05 05:04:04 +0000 |
---|---|---|
committer | bst-marge-bot <marge-bot@buildstream.build> | 2019-03-05 05:04:04 +0000 |
commit | e379b54c3f229af463be663e1958daac0e76720a (patch) | |
tree | c557d74fdf741204afe4164ce7eee03f397bd624 | |
parent | 79bbefe26a3fcd13d3de558aed6b5b4d5bc1235a (diff) | |
parent | 311be9fd2990b01684e20017d87c157f76143c6b (diff) | |
download | buildstream-e379b54c3f229af463be663e1958daac0e76720a.tar.gz |
Merge branch 'tristan/optional-coverage-1.2' into 'bst-1.2'
Coverage optional in 1.2.x
See merge request BuildStream/buildstream!1203
-rw-r--r-- | requirements/Makefile | 23 | ||||
-rw-r--r-- | requirements/cov-requirements.in | 2 | ||||
-rw-r--r-- | requirements/cov-requirements.txt | 11 | ||||
-rw-r--r-- | requirements/dev-requirements.in | 4 | ||||
-rw-r--r-- | requirements/dev-requirements.txt | 28 | ||||
-rw-r--r-- | setup.cfg | 2 | ||||
-rw-r--r-- | tests/testutils/artifactshare.py | 9 | ||||
-rw-r--r-- | tox.ini | 20 |
8 files changed, 73 insertions, 26 deletions
diff --git a/requirements/Makefile b/requirements/Makefile new file mode 100644 index 000000000..2c4a9f0a9 --- /dev/null +++ b/requirements/Makefile @@ -0,0 +1,23 @@ +# Makefile for updating BuildStream's requirements files. +# + +REQUIREMENTS_IN := $(wildcard *.in) +REQUIREMENTS_TXT := $(REQUIREMENTS_IN:.in=.txt) +PYTHON := python3 +VENV := $(PYTHON) -m venv + +VENV_PIP = $(VENVDIR)/bin/pip + + +.PHONY: all FORCE + +all: $(REQUIREMENTS_TXT) + +%.txt: %.in FORCE + $(eval VENVDIR := $(shell mktemp -d $(CURDIR)/.bst-venv.XXXXXX)) + $(VENV) $(VENVDIR) + $(VENV_PIP) install -r $< + $(VENV_PIP) freeze -r $< | grep -v pkg-resources > $@ + rm -rf $(VENVDIR) + +FORCE: 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..bed4ccd87 --- /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==19.1.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 c88b4c723..cbfa0c066 100644 --- a/requirements/dev-requirements.in +++ b/requirements/dev-requirements.in @@ -1,8 +1,6 @@ -coverage == 4.4.0 pep8 -pylint == 2.1.1 +pylint pytest >= 3.7 -pytest-cov >= 2.5.0 pytest-datafiles pytest-env pytest-pep8 diff --git a/requirements/dev-requirements.txt b/requirements/dev-requirements.txt index 6d0886d99..cb60332d2 100644 --- a/requirements/dev-requirements.txt +++ b/requirements/dev-requirements.txt @@ -1,27 +1,27 @@ -coverage==4.4 pep8==1.7.1 -pylint==2.1.1 -pytest==4.1.1 -pytest-cov==2.6.1 +pylint==2.3.1 +pytest==4.3.0 pytest-datafiles==2.0 pytest-env==0.6.2 pytest-pep8==1.0.6 pytest-pylint==0.14.0 -pytest-xdist==1.26.0 +pytest-xdist==1.26.1 pytest-timeout==1.3.3 ## The following requirements were added by pip freeze: apipkg==1.5 -astroid==2.1.0 -atomicwrites==1.2.1 -attrs==18.2.0 +astroid==2.2.3 +atomicwrites==1.3.0 +attrs==19.1.0 execnet==1.5.0 -isort==4.3.4 +isort==4.3.10 lazy-object-proxy==1.3.1 mccabe==0.6.1 -more-itertools==5.0.0 -pluggy==0.8.1 -py==1.7.0 +more-itertools==6.0.0 +pathlib2==2.3.3 +pluggy==0.9.0 +py==1.8.0 pytest-cache==1.0 -pytest-forked==1.0.1 +pytest-forked==1.0.2 six==1.12.0 -wrapt==1.11.0 +typed-ast==1.2.0 +wrapt==1.11.1 @@ -11,7 +11,7 @@ parentdir_prefix = BuildStream- test=pytest [tool:pytest] -addopts = --verbose --basetemp ./tmp --pep8 --pylint --pylint-rcfile=.pylintrc --cov=buildstream --cov-config .coveragerc --durations=20 +addopts = --verbose --basetemp ./tmp --pep8 --pylint --pylint-rcfile=.pylintrc --durations=20 norecursedirs = integration-cache tmp __pycache__ .eggs python_files = tests/*/*.py pep8maxlinelength = 119 diff --git a/tests/testutils/artifactshare.py b/tests/testutils/artifactshare.py index 85fdcf30b..1e417c592 100644 --- a/tests/testutils/artifactshare.py +++ b/tests/testutils/artifactshare.py @@ -8,7 +8,6 @@ from collections import namedtuple from contextlib import contextmanager from multiprocessing import Process, Queue -import pytest_cov from buildstream import _yaml from buildstream._artifactcache.cascache import CASCache @@ -75,7 +74,13 @@ class ArtifactShare(): # Run the artifact server. # def run(self, q): - pytest_cov.embed.cleanup_on_sigterm() + + try: + import pytest_cov + except ImportError: + pass + else: + pytest_cov.embed.cleanup_on_sigterm() # Optionally mock statvfs if self.total_space: @@ -12,13 +12,20 @@ skip_missing_interpreters = true # [testenv] commands = - pytest --basetemp {envtmpdir} {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/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 @@ -44,6 +51,7 @@ commands = deps = -rrequirements/requirements.txt -rrequirements/dev-requirements.txt + -rrequirements/cov-requirements.txt setenv = COVERAGE_FILE = {toxinidir}/.coverage-reports/.coverage |