summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.coveragerc15
-rw-r--r--conftest.py6
-rw-r--r--setup.cfg19
-rw-r--r--test-requirements.txt1
-rw-r--r--tox.ini2
5 files changed, 42 insertions, 1 deletions
diff --git a/.coveragerc b/.coveragerc
index e1d918755..2c3199a3e 100644
--- a/.coveragerc
+++ b/.coveragerc
@@ -1,5 +1,18 @@
[run]
-omit=
+branch = True
+omit =
*/lib/python*/site-packages/*
*/lib/python*/*
/usr/*
+ setup.py
+ # TODO(rhcarvalho): this is used to ignore test files from coverage report.
+ # We can make this less generic when we stick with a single test pattern in
+ # the repo.
+ test_*.py
+ *_tests.py
+
+[report]
+fail_under = 25
+
+[html]
+directory = cover
diff --git a/conftest.py b/conftest.py
new file mode 100644
index 000000000..ad03fab29
--- /dev/null
+++ b/conftest.py
@@ -0,0 +1,6 @@
+"""pytest configuration"""
+
+
+def pytest_ignore_collect(path):
+ """Hook to ignore symlink files and directories."""
+ return path.islink()
diff --git a/setup.cfg b/setup.cfg
index 757d3ddea..c8f1f9b87 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -28,3 +28,22 @@ lint_disable=fixme,locally-disabled,file-ignored,duplicate-code
exclude=.tox/*,utils/*,inventory/*
max_line_length = 120
ignore = E501,T003
+
+[tool:pytest]
+norecursedirs =
+ .*
+ __pycache__
+ cover
+ docs
+ # utils have its own config
+ utils
+python_files =
+ # TODO(rhcarvalho): rename test files to follow a single pattern. "test*.py"
+ # is Python unittest's default, while pytest discovers both "test_*.py" and
+ # "*_test.py" by default.
+ test_*.py
+ *_tests.py
+addopts =
+ --cov=.
+ --cov-report=term
+ --cov-report=html
diff --git a/test-requirements.txt b/test-requirements.txt
index c3d0d9387..c4b54fabe 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -11,3 +11,4 @@ nose
coverage
mock
pytest
+pytest-cov
diff --git a/tox.ini b/tox.ini
index 4d3594023..ae781a04c 100644
--- a/tox.ini
+++ b/tox.ini
@@ -17,3 +17,5 @@ commands =
yamllint: python setup.py yamllint
unit: nosetests
generate_validation: python setup.py generate_validation
+
+