Use coverage parallel mode and coverage combine to fix paths
When using coverage.py with a project installed into site-packages
instead of in the current directory you end up with paths like
.tox/py34/lib/python3.4/site-packages/cryptography/__init__.py which
is less than ideal (and may cause issues when aggregating coverage
over multiple versions of Python). Switching coverage.py into
parallel-mode will have it write a .coverage.* file instead of a
.coverage file, which can then be "combined" into a .coverage file
using coverage combine. When coverage.py does the combine step it
will collapse the .tox/*/lib/python*/site-packages/cryptography
paths into src/cryptography.
diff --git a/.coveragerc b/.coveragerc
index aa69fd4..a0a57b3 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -4,6 +4,11 @@
cryptography
tests/
+[paths]
+source =
+ src/cryptography
+ .tox/*/lib/python*/site-packages/cryptography
+
[report]
exclude_lines =
@abc.abstractmethod
diff --git a/tox.ini b/tox.ini
index d47beac..4d4ac20 100644
--- a/tox.ini
+++ b/tox.ini
@@ -11,7 +11,11 @@
pytest
./vectors
commands =
- coverage run -m pytest --capture=no --strict {posargs}
+ # We use parallel mode and then combine here so that coverage.py will take
+ # the paths like .tox/py34/lib/python3.4/site-packages/cryptography/__init__.py
+ # and collapse them into src/cryptography/__init__.py.
+ coverage run --parallel-mode -m pytest --capture=no --strict {posargs}
+ coverage combine
coverage report -m
[testenv:docs]