trove/tox.ini
Amrith Kumar 0a9b1e45fc Enable hacking extensions framework
<long rant deleted>

This change enables the hacking extensions ability in trove. That
includes bumping the version of hacking that we use, and also adding
the enable-extensions like in the [flake8] section. I've enabled two
of the hacking extensions here.

There are some limitations to the hacking rules that I've enabled so
I'm also going to enter two bugs that others can fix (if they so
desire).

Change-Id: I6d8fc4bc03f948b84ad823e5248d78a4caa5c042
Related-Bug: 1642554
Related-Bug: 1642552
2016-11-17 14:43:36 -05:00

102 lines
2.7 KiB
INI

[tox]
envlist = py{27,34,35},pep8,apiexamples,cover,api-ref,releasenotes,bandit,fakemodetests,pylint
minversion = 1.6
skipsdist = True
[testenv]
setenv = VIRTUAL_ENV={envdir}
usedevelop = True
install_command = pip install \
-c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} \
-U {opts} {packages}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = find ./trove -type f -name "*.pyc" -delete
rm -f .testrepository/times.dbm
rm -f trove_test.sqlite
whitelist_externals = find
rm
bash
[tox:jenkins]
sitepackages = True
[testenv:pep8]
basepython = python2.7
commands =
flake8
# Check that .po and .pot files are valid:
bash -c "find trove -type f -regex '.*\.pot?' -print0 | \
xargs -0 -n 1 msgfmt --check-format -o /dev/null"
[testenv:py27]
commands = {[testenv]commands}
ostestr --slowest --serial
[py3base]
commands = ostestr --slowest --blacklist_file=blacklist-py3.txt --serial
[testenv:py34]
commands = {[testenv]commands}
{[py3base]commands}
[testenv:py35]
commands = {[testenv]commands}
{[py3base]commands}
[testenv:apiexamples]
commands = {envpython} generate_examples.py
[testenv:fakemodetests]
commands = {envpython} run_tests.py
[testenv:debug]
commands = oslo_debug_helper {posargs}
[testenv:cover]
basepython = python2.7
commands =
{[testenv]commands}
coverage erase
python setup.py testr --coverage --testr-args="--concurrency=1"
coverage run -a run_tests.py
coverage html
coverage xml
coverage report
[testenv:venv]
commands = {posargs}
[flake8]
show-source = True
# H301 is ignored on purpose.
# The rest of the ignores are TODOs.
ignore = F821,H301,H404,H405,H501
enable-extensions = H203,H106
builtins = _
exclude=.venv,.tox,.git,dist,doc,*egg,tools,etc,build,*.po,*.pot,integration
filename=*.py,trove-*
[testenv:api-ref]
# This environment is called from CI scripts to test and publish
# the API Ref to developer.openstack.org.
commands =
rm -rf api-ref/build
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
[testenv:releasenotes]
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:bandit]
commands = bandit -r trove -n5 -x tests
[testenv:install-guide]
commands = sphinx-build -a -E -W -d install-guide/build/doctrees -b html install-guide/source install-guide/build/html
[testenv:pylint]
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = {[testenv]commands}
python tools/trove-pylint.py {posargs:check}