90d7dcb1ed
Update the TESTING.rst file to reflect that just installing and starting zookeeperd is no longer sufficient now that we require TLS and auth for the connection, as well as running database servers. Suggest the container-based setup script instead. Also improve that script to allow it to be invoked as a normal user, with root command escalation tool choice (e.g. "sudo") supplied through a ROOTCMD environment variable, so that things created inside the git worktree like the CA don't end up root-owned. Related, the tox-docker plugin previously suggested in the document is no longer a viable option for the same reasons, so clean up the plumbing for it in tox.ini as well. Change-Id: Iac32799425a5bd4b1bdbf56f34a2310241ac4499
115 lines
3.0 KiB
INI
115 lines
3.0 KiB
INI
[tox]
|
|
minversion = 3.2
|
|
skipsdist = True
|
|
envlist = linters,py3
|
|
ignore_basepython_conflict = True
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
install_command = bash tools/pip.sh {opts} {packages}
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
OS_TEST_TIMEOUT=360
|
|
OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:1}
|
|
OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:1}
|
|
OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:1}
|
|
SQLALCHEMY_WARN_20={env:SQLALCHEMY_WARN_20:1}
|
|
PYTHONWARNINGS=always::DeprecationWarning:zuul.driver.sql.sqlconnection,always::DeprecationWarning:tests.base,always::DeprecationWarning:tests.unit.test_database,always::DeprecationWarning:zuul.driver.sql.alembic.env,always::DeprecationWarning:zuul.driver.sql.alembic.script
|
|
passenv =
|
|
NODEPOOL_ZK_HOST
|
|
OS_LOG_CAPTURE
|
|
OS_LOG_DEFAULTS
|
|
OS_STDERR_CAPTURE
|
|
OS_STDOUT_CAPTURE
|
|
YARN_REGISTRY
|
|
ZUUL_MYSQL_HOST
|
|
ZUUL_MYSQL_PORT
|
|
ZUUL_POSTGRES_HOST
|
|
ZUUL_SCHEDULER_COUNT
|
|
ZUUL_TEST_ROOT
|
|
ZUUL_ZK_HOST
|
|
ZUUL_ZK_CA
|
|
ZUUL_ZK_CERT
|
|
ZUUL_ZK_KEY
|
|
usedevelop = True
|
|
whitelist_externals = bash
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
bash -c 'stestr run --slowest --concurrency=`python -c "import multiprocessing; print(max(int(multiprocessing.cpu_count()-1),1))"` {posargs}'
|
|
|
|
[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.
|
|
usedevelop = False
|
|
install_command = pip install {opts} {packages}
|
|
deps = bindep
|
|
commands = bindep test
|
|
|
|
[testenv:linters]
|
|
usedevelop = False
|
|
install_command = pip install {opts} {packages}
|
|
deps =
|
|
flake8
|
|
openapi-spec-validator
|
|
commands =
|
|
flake8 {posargs}
|
|
openapi-spec-validator web/public/openapi.yaml
|
|
|
|
[testenv:cover]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHON=coverage run --source zuul --parallel-mode
|
|
commands =
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
|
|
[testenv:docs]
|
|
install_command = pip install {opts} {packages}
|
|
deps =
|
|
-r{toxinidir}/doc/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
sphinx-build -E -W -d doc/build/doctrees -b html doc/source/ doc/build/html
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:zuul_client]
|
|
commands =
|
|
stestr run --concurrency=1 --test-path ./tests/zuul_client {posargs}
|
|
deps =
|
|
zuul-client
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
|
|
[testenv:remote]
|
|
passenv =
|
|
NODEPOOL_ZK_HOST
|
|
OS_LOG_CAPTURE
|
|
OS_LOG_DEFAULTS
|
|
OS_STDERR_CAPTURE
|
|
OS_STDOUT_CAPTURE
|
|
YARN_REGISTRY
|
|
ZUUL_REMOTE_IPV4
|
|
ZUUL_SSH_KEY
|
|
ZUUL_TEST_ROOT
|
|
ZUUL_ZK_HOST
|
|
ZUUL_ZK_CA
|
|
ZUUL_ZK_CERT
|
|
ZUUL_ZK_KEY
|
|
commands =
|
|
stestr run --test-path ./tests/remote {posargs}
|
|
|
|
[flake8]
|
|
# These are ignored intentionally in zuul projects;
|
|
# please don't submit patches that solely correct them or enable them.
|
|
ignore = E124,E125,E129,E252,E402,E741,H,W503,W504
|
|
show-source = True
|
|
exclude = .venv,.tox,dist,doc,build,*.egg,node_modules
|