trove/tox.ini
Amrith Kumar 107bc5e4b4 we now need to have dib installed explicitly
dib is now going to have to be installed explicitly for us to actually
run the gate. the old method of just cloning the repo won't work with
dib v2.

There are other ways to accomplish this but I'm choosing this approach
knowing that it isn't ideal. First, what's the downside? This means
that dib gets installed wherever trove control plane is installed. Is
that necessary, NO. Is it the end of the world, NO.

What are the options?

- do what Octavia did and have a second requirements.txt in a folder
  called diskimage-create. Would this work, yes but we don't have such
  a mechanism right now and nothing would keep this requirements.txt
  file in sync with g-r that I know of.

- hardcode the pip install command somewhere in the devstack
  plugin. yes, this would work but this would also have no ability to
  sync with g-r.

So, while the solution proposed here isn't ideal, it strikes me as not
bad, and much less risk than the other two options.

We also need to figure out where the elements are and fix the path for
disk-image-create.

Some pep8 failures appears to have crept in as well, those are
addressed.

Change-Id: Ic64d91e082102057417995a0f6851d03b9e0ca74
2017-03-10 08:14:20 -05:00

107 lines
2.9 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}
PYTHONWARNINGS=default::DeprecationWarning
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,E402,W503,E731
enable-extensions = H203,H106
builtins = _
exclude=.venv,.tox,.git,dist,doc,*egg,tools,etc,build,*.po,*.pot,integration,releasenotes
filename=*.py,trove-*
[hacking]
import_exceptions = trove.common.i18n
local-check-factory = trove.hacking.translation_checks.factory
[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}