c5f5c2c219
This is inline with the direction from: http://lists.openstack.org/pipermail/openstack-dev/2017-September/122135.html This also makes it easier to invoke tests based on a regular expression. Previously, it was possible to do: $ tox -e py27,py34 -- keystone.tests.unit.test_module.TestCase But that isn't supported in the way we use ostestr in tox with the new stestr changes. Instead of refactoring our ostestr usage we can just replace it with stestr directly which allows us to invoke tests using a single regex and is inline with the direction of moving away from ostestr. Change-Id: I83eb6ce905c45c9c388a8d5a3c9369f5c5f6710e
149 lines
4.0 KiB
INI
149 lines
4.0 KiB
INI
[tox]
|
|
minversion = 2.3.1
|
|
skipsdist = True
|
|
envlist = py35,py27,pep8,api-ref,docs,genconfig,genpolicy,releasenotes
|
|
|
|
[testenv]
|
|
usedevelop = True
|
|
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
.[ldap,memcache,mongodb]
|
|
commands =
|
|
find keystone -type f -name "*.pyc" -delete
|
|
stestr run {posargs}
|
|
whitelist_externals =
|
|
bash
|
|
find
|
|
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY PBR_VERSION
|
|
|
|
[testenv:api-ref]
|
|
commands =
|
|
rm -rf api-ref/build
|
|
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
|
whitelist_externals =
|
|
rm
|
|
|
|
[testenv:pep8]
|
|
deps =
|
|
.[bandit]
|
|
{[testenv]deps}
|
|
commands =
|
|
flake8
|
|
# Run bash8 during pep8 runs to ensure violations are caught by
|
|
# the check and gate queues
|
|
bashate devstack/plugin.sh
|
|
# Run security linter
|
|
bandit -r keystone -x tests
|
|
|
|
[testenv:bandit]
|
|
# NOTE(browne): This is required for the integration test job of the bandit
|
|
# project. Please do not remove.
|
|
deps = .[bandit]
|
|
commands = bandit -r keystone -x tests
|
|
|
|
[testenv:cover]
|
|
# Also do not run test_coverage_ext tests while gathering coverage as those
|
|
# tests conflict with coverage.
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHON=coverage run --source keystone --parallel-mode
|
|
commands =
|
|
find keystone -type f -name "*.pyc" -delete
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
|
|
[testenv:patch_cover]
|
|
commands =
|
|
bash tools/cover.sh
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:debug]
|
|
commands =
|
|
find keystone -type f -name "*.pyc" -delete
|
|
oslo_debug_helper {posargs}
|
|
passenv =
|
|
KSTEST_ADMIN_URL
|
|
KSTEST_ADMIN_USERNAME
|
|
KSTEST_ADMIN_PASSWORD
|
|
KSTEST_ADMIN_DOMAIN_ID
|
|
KSTEST_PUBLIC_URL
|
|
KSTEST_USER_USERNAME
|
|
KSTEST_USER_PASSWORD
|
|
KSTEST_USER_DOMAIN_ID
|
|
KSTEST_PROJECT_ID
|
|
|
|
[testenv:debug-py35]
|
|
basepython = python3.5
|
|
commands =
|
|
# Cleanup *pyc
|
|
find keystone -type f -name "*.pyc" -delete
|
|
oslo_debug_helper {posargs}
|
|
|
|
[testenv:functional]
|
|
basepython = python3.5
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
setenv = OS_TEST_PATH=./keystone/tests/functional
|
|
commands =
|
|
find keystone -type f -name "*.pyc" -delete
|
|
python setup.py testr --slowest --testr-args='{posargs}'
|
|
passenv =
|
|
KSTEST_ADMIN_URL
|
|
KSTEST_ADMIN_USERNAME
|
|
KSTEST_ADMIN_PASSWORD
|
|
KSTEST_ADMIN_DOMAIN_ID
|
|
KSTEST_PUBLIC_URL
|
|
KSTEST_USER_USERNAME
|
|
KSTEST_USER_PASSWORD
|
|
KSTEST_USER_DOMAIN_ID
|
|
KSTEST_PROJECT_ID
|
|
|
|
[flake8]
|
|
filename= *.py,keystone-manage
|
|
show-source = true
|
|
enable-extensions = H203,H904
|
|
|
|
# D100: Missing docstring in public module
|
|
# D101: Missing docstring in public class
|
|
# D102: Missing docstring in public method
|
|
# D103: Missing docstring in public function
|
|
# D104: Missing docstring in public package
|
|
# D203: 1 blank line required before class docstring (deprecated in pep257)
|
|
ignore = D100,D101,D102,D103,D104,D203
|
|
|
|
exclude=.venv,.git,.tox,build,dist,*lib/python*,*egg,tools,vendor,.update-venv,*.ini,*.po,*.pot
|
|
max-complexity=24
|
|
|
|
[testenv:docs]
|
|
commands=
|
|
bash -c "rm -rf doc/build"
|
|
bash -c "rm -rf doc/source/api"
|
|
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:genconfig]
|
|
commands = oslo-config-generator --config-file=config-generator/keystone.conf
|
|
|
|
[testenv:genpolicy]
|
|
commands = oslopolicy-sample-generator --config-file config-generator/keystone-policy-generator.conf
|
|
|
|
[hacking]
|
|
import_exceptions =
|
|
keystone.i18n
|
|
six.moves
|
|
local-check-factory = keystone.tests.hacking.checks.factory
|
|
|
|
[testenv:bindep]
|
|
# 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.
|
|
deps = bindep
|
|
commands = bindep test
|