ironic/tox.ini
Lucas Alvares Gomes e95a8b9ae9 Add bashate tox command
Now that we copied the devstack code to our tree we need to ensure that
the bash scripts we have are correct. This patch is adding a tox command
(bashate) that will check the syntax of the shell scripts under
the devstack/ directory.

The scripts under devstack/tools/ are not being checked, that's because
they weren't check when the code was in devstack as well and there's
loads to fix. It will be fixed in a following patch.

Change-Id: I8f66492081e0fd10e1de057febb9324a81411c7a
Partial-Bug: #1526518
2015-12-15 20:03:27 +00:00

90 lines
2.9 KiB
INI

[tox]
minversion = 1.8
skipsdist = True
envlist = py34,py27,pep8,bashate
[testenv]
usedevelop = True
install_command =
constraints: pip install -U --force-reinstall -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
pip install -U {opts} {packages}
setenv = VIRTUAL_ENV={envdir}
PYTHONDONTWRITEBYTECODE = 1
LANGUAGE=en_US
LC_ALL=en_US.UTF-8
TESTS_DIR=./ironic/tests/unit/
deps = -r{toxinidir}/test-requirements.txt
commands = ostestr {posargs}
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
[testenv:genstates]
deps = {[testenv]deps}
pydot2
commands = {toxinidir}/tools/states_to_dot.py -f {toxinidir}/doc/source/images/states.svg --format svg
[testenv:pep8]
whitelist_externals = bash
commands =
flake8 {posargs}
# Check that .po and .pot files are valid:
bash -c "find ironic -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
[testenv:cover]
setenv = VIRTUAL_ENV={envdir}
LANGUAGE=en_US
commands =
python setup.py testr --coverage {posargs}
[testenv:checkconfig]
sitepackages = False
envdir = {toxworkdir}/venv
commands =
{toxinidir}/tools/config/check_uptodate.sh
[testenv:genconfig]
whitelist_externals = bash
sitepackages = False
envdir = {toxworkdir}/venv
commands =
bash tools/config/generate_sample.sh -b . -p ironic -o etc/ironic
[testenv:docs]
setenv = PYTHONHASHSEED=0
sitepackages = False
envdir = {toxworkdir}/venv
commands =
python setup.py build_sphinx
[testenv:releasenotes]
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:venv]
setenv = PYTHONHASHSEED=0
commands = {posargs}
[testenv:bashate]
deps =
{env:BASHATE_INSTALL_PATH:bashate==0.3.2}
whitelist_externals = bash
# TODO(lucasagomes): Check the tools/ directory as well
commands = bash -c "find {toxinidir}/devstack \
-not \( -type d -name .?\* -prune \) \ # prune all 'dot' dirs
-type f \ # only files
-not -name \*.swp \ # skip editor files
-not -name \*~ \ # skip editor files
-not -name \*.xml \ # skip xml files
-not -name \*.template \ # skip template files
\( \
-name \*.sh -or \ # add files eding with .sh
-wholename \*/lib/\* \ # add files under lib/
\) \
-print0 | xargs -0 bashate -v -iE006 -eE005,E042"
[flake8]
ignore = E129
exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools
max-complexity=17
[hacking]
import_exceptions = testtools.matchers, ironic.common.i18n