Last active
February 11, 2016 22:56
-
-
Save nakato/efa657cac9477d2d0e83 to your computer and use it in GitHub Desktop.
Nova tox.ini modified to show what it can look like if we get {posargs} in section substitution.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[tox] | |
minversion = 2.0 | |
envlist = py34,py27,functional,pep8,pip-missing-reqs | |
skipsdist = True | |
[testenv] | |
usedevelop = True | |
# tox is silly... these need to be separated by a newline.... | |
whitelist_externals = bash | |
find | |
rm | |
install_command = | |
constraints: {[testenv:common-constraints]install_command} | |
unconstrained: pip install -U --force-reinstall {opts} {packages} | |
pip install -U --force-reinstall {opts} {packages} | |
setenv = VIRTUAL_ENV={envdir} | |
OS_TEST_PATH=./nova/tests/unit | |
LANGUAGE=en_US | |
LC_ALL=en_US.utf-8 | |
functional: OS_TEST_PATH=./nova/tests/functional | |
api-samples: {[substitutions]apisamplesenv} | |
# TODO(mriedem): Move oslo.versionedobjects[fixtures] to test-requirements.txt | |
# after I937823ffeb95725f0b55e298ebee1857d6482883 lands. | |
deps = -r{toxinidir}/test-requirements.txt | |
oslo.versionedobjects[fixtures] | |
commands = | |
py27,functional,api-samples: {[substitutions]test} | |
py34: {[substitutions]py34} | |
pep8: {[substitutions]pep8} | |
cover: {[substitutions]cover} | |
venv: {posargs} | |
docs: {[substitutions]docs} | |
bandit: bandit -c bandit.yaml -r nova -n 5 -ll | |
genconfig: oslo-config-generator --config-file=etc/nova/nova-config-generator.conf | |
api-guide: sphinx-build -b html -d api-guide/build/doctrees api-guide/source api-guide/build/html | |
releasenotes: {[substitutions]releasenotes} | |
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY | |
# there is also secret magic in pretty_tox.sh which lets you run in a fail only | |
# mode. To do this define the TRACE_FAILONLY environmental variable. | |
[testenv:common-constraints] | |
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages} | |
[substitutions] | |
test = | |
find . -type f -name "*.pyc" -delete | |
bash tools/pretty_tox.sh '{posargs}' | |
pep8 = | |
bash tools/flake8wrap.sh {posargs} | |
# Check that .po and .pot files are valid. | |
bash -c "find nova -type f -regex '.*\.pot?' -print0| \ | |
xargs -0 -n 1 msgfmt --check-format -o /dev/null" | |
py34 = | |
find . -type f -name "*.pyc" -delete | |
ostestr --blacklist_file tests-py3.txt | |
cover = | |
coverage erase | |
python setup.py testr --coverage \ | |
--testr-args='{posargs}' | |
coverage combine | |
coverage html --include='nova/*' --omit='nova/openstack/common/*' -d covhtml -i | |
docs = | |
rm -rf doc/source/api doc/build api-guide/build | |
python setup.py build_sphinx | |
bash -c '! find doc/ -type f -name *.json | xargs -t -n1 python -m json.tool 2>&1 > /dev/null | grep -B1 -v ^python' | |
oslo-config-generator --config-file=etc/nova/nova-config-generator.conf | |
sphinx-build -b html api-guide/source api-guide/build/html | |
releasenotes = | |
rm -rf releasenotes/build | |
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html | |
apisamplesenv = | |
GENERATE_SAMPLES=True | |
PYTHONHASHSEED=0 | |
OS_TEST_PATH=./nova/tests/functional/api_sample_tests | |
[flake8] | |
# E125 is deliberately excluded. See https://github.com/jcrocholl/pep8/issues/126 | |
# The rest of the ignores are TODOs | |
# New from hacking 0.9: E129, E131, H407, H405 | |
# E251 Skipped due to https://github.com/jcrocholl/pep8/issues/301 | |
ignore = E121,E122,E123,E124,E125,E126,E127,E128,E129,E131,E251,H405 | |
exclude = .venv,.git,.tox,dist,doc,*openstack/common/*,*lib/python*,*egg,build,tools/xenserver*,releasenotes | |
# To get a list of functions that are more complex than 25, set max-complexity | |
# to 25 and run 'tox -epep8'. | |
# 34 is currently the most complex thing we have | |
# TODO(jogo): get this number down to 25 or so | |
max-complexity=35 | |
[hacking] | |
local-check-factory = nova.hacking.checks.factory | |
import_exceptions = nova.i18n | |
[testenv:pip-missing-reqs] | |
# do not install test-requirements as that will pollute the virtualenv for | |
# determining missing packages | |
# this also means that pip-missing-reqs must be installed separately, outside | |
# of the requirements.txt files | |
deps = pip_missing_reqs | |
commands=pip-missing-reqs -d --ignore-file=nova/tests/* --ignore-file=nova/test.py nova |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment