summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSerenaFeng <feng.xiaowei@zte.com.cn>2017-02-23 15:14:12 +0800
committerAric Gardner <agardner@linuxfoundation.org>2017-02-24 21:56:48 +0000
commit0596b593b7486e9e7509c34855f2c31fcd5ab9a2 (patch)
treefd9ffc4d33f37168ba201f1f8a0da5ae8f5304a7
parenta04daa829c481fab9a734ca2e22fe69ca0d492fc (diff)
leverage tox to facilitate the development
Before submitting a patch, we need to execute flake8, unittest, open coverage report, now with the help of tox any pytest, we can process them all with only one command. pytest is choosen here is because of its useful assert showcase, and powerful properties and healthy ecosystem(plugins of mock etc) Change-Id: I7ee89da370da08cc2bc70f7d3b1e2741d7d2e1e8 Signed-off-by: SerenaFeng <feng.xiaowei@zte.com.cn>
-rw-r--r--testapi/.coveragerc27
-rw-r--r--testapi/test-requirements.txt10
-rw-r--r--testapi/tox.ini41
3 files changed, 78 insertions, 0 deletions
diff --git a/testapi/.coveragerc b/testapi/.coveragerc
new file mode 100644
index 0000000..23fb97f
--- /dev/null
+++ b/testapi/.coveragerc
@@ -0,0 +1,27 @@
+# .coveragerc to control coverage.py
+
+[run]
+branch = True
+source =
+ opnfv_testapi
+
+[report]
+# Regexes for lines to exclude from consideration
+exclude_lines =
+ # Have to re-enable the standard pragma
+ pragma: no cover
+
+ # Don't complain about missing debug-only code:
+ def __repr__
+ if self\.debug
+
+ # Don't complain if tests don't hit defensive assertion code:
+ raise AssertionError
+ raise NotImplementedError
+
+ # Don't complain if non-runnable code isn't run:
+ if 0:
+ if __name__ == .__main__.:
+
+ignore_errors = True
+
diff --git a/testapi/test-requirements.txt b/testapi/test-requirements.txt
new file mode 100644
index 0000000..8933319
--- /dev/null
+++ b/testapi/test-requirements.txt
@@ -0,0 +1,10 @@
+# The order of packages is significant, because pip processes them in the order
+# of appearance. Changing the order has an impact on the overall integration
+# process, which may cause wedges in the gate later.
+
+tox
+pytest
+pytest-cov
+coverage
+pykwalify
+pip_check_reqs
diff --git a/testapi/tox.ini b/testapi/tox.ini
new file mode 100644
index 0000000..81c9dfa
--- /dev/null
+++ b/testapi/tox.ini
@@ -0,0 +1,41 @@
+# Tox (http://tox.testrun.org/) is a tool for running tests
+# in multiple virtualenvs. This configuration file will run the
+# test suite on all supported python versions. To use it, "pip install tox"
+# and then run "tox" from this directory.
+
+[tox]
+envlist = py27,pep8
+skipsdist = True
+sitepackages = True
+
+[testenv]
+usedevelop = True
+install_command = pip install -U {opts} {packages}
+deps =
+ -rrequirements.txt
+ -rtest-requirements.txt
+commands=
+ py.test \
+ --basetemp={envtmpdir} \
+ --cov \
+ {posargs}
+setenv=
+ HOME = {envtmpdir}
+ PYTHONPATH = {toxinidir}
+
+[testenv:pep8]
+deps = flake8
+commands = flake8 {toxinidir}
+
+[flake8]
+# H803 skipped on purpose per list discussion.
+# E123, E125 skipped as they are invalid PEP-8.
+
+show-source = True
+ignore = E123,E125,H803,E501
+builtins = _
+exclude = build,dist,doc,legacy,.eggs,.git,.tox,.venv,testapi_venv,venv
+
+[pytest]
+testpaths = opnfv_testapi/tests
+python_functions = test_*