refstack/tox.ini
Elod Illes 91c56ed9a1 Add local bindep.txt and py36-func-mysql job
As it was announced [1] global bindep-fallback.txt was removed and now
projects need to have a local bindep.txt to be able to install binary
dependencies for testing.

In test jobs the script tools/test-setup.sh is called which requires
mysql and postgres servers and clients to be installed.

To eliminate 'ERROR: InterpreterNotFound: python3.5' of the zuul job
refstack-tox-py35-func-mysql, simply replace the tox environment
py35-func-mysql to py36-func-mysql with a base python of 3.6 instead of
3.5 and rename the zuul job to contain py36 in the name.

Update the Zuul template to use nodejs6 jobs, this makes the single jobs
obsolete, remove them. Without this change, the gate will use
nodejs4 and fail.

[1] http://lists.openstack.org/pipermail/openstack-discuss/2019-June/007272.html

Change-Id: I90cb912befb9d09fed330bd8d27a491caffbf7b9
2019-09-14 20:35:16 +02:00

108 lines
3.6 KiB
INI

[tox]
# py3* tests should be run before py27
# it is a workaround for testr bug
# https://bugs.launchpad.net/testrepository/+bug/1229445
envlist = py35,py36,py27,pep8,pip-check-reqs
minversion = 1.6
skipsdist = True
[testenv]
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}
setenv = VIRTUAL_ENV={envdir}
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_ALL=C
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = /bin/rm -f .testrepository/times.dbm
python setup.py testr --slowest --testr-args='{posargs}'
distribute = false
[testenv:py27-func-mysql]
basepython = python2.7
setenv = SUBUNIT_TEST_PATH=./refstack/tests/api
# Integration/functional tests
# must not be run in parallel (--concurrency=1),
# because each of these tests
# require cleanup of database
commands = {toxinidir}/setup-mysql-tests.sh python setup.py testr --slowest --testr-args='{posargs:--concurrency=1}'
[testenv:py36-func-mysql]
basepython = python3.6
setenv = SUBUNIT_TEST_PATH=./refstack/tests/api
# Integration/functional tests
# must not be run in parallel (--concurrency=1),
# because each of these tests
# require cleanup of database
commands = {toxinidir}/setup-mysql-tests.sh python setup.py testr --slowest --testr-args='{posargs:--concurrency=1}'
[testenv:pep8]
commands =
flake8 {posargs}
flake8 --filename=refstack* bin
pep257 refstack
distribute = false
[testenv:genconfig]
commands =
oslo-config-generator --output-file etc/refstack.conf.sample \
--namespace refstack \
--namespace oslo.db \
--namespace oslo.log
[testenv:venv]
commands = {posargs}
[testenv:gen-cover]
commands = python setup.py testr --coverage \
--omit='{toxinidir}/refstack/tests/unit/*,{toxinidir}/refstack/tests/api/*,{toxinidir}/refstack/api/config.py,{toxinidir}/refstack/db/migrations/alembic/*,{toxinidir}/refstack/opts.py' \
--testr-args='{posargs}'
[testenv:cover]
commands = {toxinidir}/tools/cover.sh {posargs}
[testenv:docs]
deps = -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -b html doc/source doc/build/html
[flake8]
# E125 continuation line does not distinguish itself from next logical line
# H404 multi line docstring should start with a summary
ignore = E125,H404
enable-extensions = H203
show-source = true
builtins = _
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build
[testenv:pip-check-reqs]
# Do not install test-requirements as that will pollute the virtualenv for
# determining missing packages.
# This also means that pip-check-reqs must be installed separately, outside
# of the requirements.txt files
deps = pip_check_reqs
-r{toxinidir}/requirements.txt
commands=
pip-extra-reqs -d --ignore-file=refstack/tests/* refstack
pip-missing-reqs -d --ignore-file=refstack/tests/* refstack
[testenv:debug]
commands = oslo_debug_helper -t refstack/tests/unit {posargs}
[testenv:debug35]
basepython = python3.5
commands = oslo_debug_helper -t refstack/tests/unit {posargs}
[testenv:bindep]
basepython = python3
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files, and develop mode disabled
# explicitly to avoid unnecessarily installing the checked-out repo too (this
# further relies on "tox.skipsdist = True" above).
deps = bindep
commands = bindep test
usedevelop = False