summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRodolfo Carvalho <rhcarvalho@gmail.com>2017-02-18 21:17:25 +0100
committerRodolfo Carvalho <rhcarvalho@gmail.com>2017-02-20 18:12:03 +0100
commitfbc8d14bec58035601b2bfd571c49993c9f907dc (patch)
treee8464daedd7e9bc4bfd2a6b0f10a93a747e209ad
parent95f11aa9410c8db4794b51932931e6ee3da46402 (diff)
downloadopenshift-fbc8d14bec58035601b2bfd571c49993c9f907dc.tar.gz
openshift-fbc8d14bec58035601b2bfd571c49993c9f907dc.tar.bz2
openshift-fbc8d14bec58035601b2bfd571c49993c9f907dc.tar.xz
openshift-fbc8d14bec58035601b2bfd571c49993c9f907dc.zip
Configure pytest to run tests and coverage
-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
+
+