summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbst-marge-bot <marge-bot@buildstream.build>2019-03-05 05:04:04 +0000
committerbst-marge-bot <marge-bot@buildstream.build>2019-03-05 05:04:04 +0000
commite379b54c3f229af463be663e1958daac0e76720a (patch)
treec557d74fdf741204afe4164ce7eee03f397bd624
parent79bbefe26a3fcd13d3de558aed6b5b4d5bc1235a (diff)
parent311be9fd2990b01684e20017d87c157f76143c6b (diff)
downloadbuildstream-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/Makefile23
-rw-r--r--requirements/cov-requirements.in2
-rw-r--r--requirements/cov-requirements.txt11
-rw-r--r--requirements/dev-requirements.in4
-rw-r--r--requirements/dev-requirements.txt28
-rw-r--r--setup.cfg2
-rw-r--r--tests/testutils/artifactshare.py9
-rw-r--r--tox.ini20
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
diff --git a/setup.cfg b/setup.cfg
index 159c665c3..545a6c89c 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -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:
diff --git a/tox.ini b/tox.ini
index 2a3654722..3c401ba4f 100644
--- a/tox.ini
+++ b/tox.ini
@@ -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