[tox] envlist = py{27,35},pep8,cover minversion = 2.7 skipsdist = True [testenv] usedevelop = True setenv = VIRTUAL_ENV={envdir} OS_TEST_PATH=monasca_events_api/tests/unit passenv = *_proxy *_PROXY whitelist_externals = bash find rm install_command = pip install -U {opts} {packages} deps = -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} -r{toxinidir}/test-requirements.txt -r{toxinidir}/requirements.txt commands = find ./ -type f -name '*.pyc' -delete rm -Rf .testrepository/times.dbm [testenv:py27] description = Runs unit test using Python2.7 basepython = python2.7 commands = {[testenv]commands} ostestr {posargs} [testenv:py35] description = Runs unit test using Python3.5 basepython = python3.5 commands = {[testenv]commands} ostestr {posargs} [testenv:cover] description = Calculates code coverage basepython = python2.7 commands = {[testenv]commands} coverage erase python setup.py test --coverage --testr-args='{posargs}' --coverage-package-name=monasca_events_api coverage report [testenv:debug] description = Allows to run unit-test with debug mode enabled commands = {[testenv]commands} oslo_debug_helper -t {env:OS_TEST_PATH} {posargs} [testenv:bashate] description = Validates (pep8-like) devstack plugins skip_install = True usedevelop = False commands = bash {toxinidir}/tools/bashate.sh [testenv:bandit] skip_install = True usedevelop = False commands = bandit -r monasca_events_api -n5 -x monasca_events_api/tests [testenv:flake8] skip_install = True usedevelop = False commands = flake8 monasca_events_api [testenv:pep8] description = Runs set of linters against codebase (flake8, bandit, bashate, checkniceness) commands = {[testenv:flake8]commands} {[testenv:bandit]commands} {[testenv:bashate]commands} {[testenv:checkniceness]commands} [testenv:docs] description = Builds api-ref, releasenotes and devdocs commands = {[testenv:devdocs]commands} {[testenv:api-ref]commands} {[testenv:releasenotes]commands} [testenv:api-ref] description = Called from CI scripts to test and publish the API Ref commands = rm -rf api-ref/build {[testenv:checkjson]commands} sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html [testenv:releasenotes] description = Called from CI script to test and publish the Release Notes commands = rm -rf releasenotes/build sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [testenv:devdocs] description = Builds developer documentation commands = rm -rf doc/build {[testenv:checkjson]commands} python setup.py build_sphinx [testenv:checkniceness] description = Validates (pep-like) documentation skip_install = True usedevelop = False commands = doc8 --file-encoding utf-8 {toxinidir}/doc doc8 --file-encoding utf-8 {toxinidir}/api-ref doc8 --file-encoding utf-8 {toxinidir}/releasenotes [testenv:checkjson] description = Validates all json samples inside doc folder deps = whitelist_externals = bash python commands = bash -c "! find doc/ -type f -name *.json | xargs grep -U -n $'\r'" bash -c '! find doc/ -type f -name *.json | xargs -t -n1 python -m json.tool 2>&1 > /dev/null | grep -B1 -v ^python' [testenv:genconfig] description = Generates sample documentation file for monasca-events-api commands = oslo-config-generator --config-file=config-generator/config.conf [testenv:genpolicy] description = Generates sample policy.yaml file for monasca-events-api commands = oslopolicy-sample-generator --config-file=config-generator/policy.conf [testenv:venv] commands = {posargs} [flake8] exclude = .git,.gitignore,.tox,dist,doc,api-ref,releasenotes,*.egg,build, __pycache__ show-source = True enable-extensions = H203,H106 ignore = D100,D104 import-order-style = pep8 [hacking]