Files
trove/tox.ini
Victor Stinner 4f888ddfa3 pkg: replace commands module with subprocess
The commands is deprecated since Python 2.6 and was removed from
Python 3. This change replaces it with subprocess. By the way, it
also changes the code to avoid a shell and so indirectly makes the
code safer (shell injections are no more possibles).

tox: run test_backupagent and test_pkg on Python 3.4.

Partially implements: blueprint trove-python3
Change-Id: I3818fa1498819cc77a3da42c12245c50b96cad59
2016-06-16 02:26:49 +02:00

177 lines
8.0 KiB
INI

[tox]
envlist = py34,py27,pep8,checkbuild,checklinks
minversion = 1.6
skipsdist = True
[testenv]
setenv = VIRTUAL_ENV={envdir}
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
{envpython} run_tests.py
python setup.py testr --slowest
{envpython} generate_examples.py
whitelist_externals = bash
find
[tox:jenkins]
sitepackages = True
[testenv:pep8]
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:py34]
# Use a whitelist of tests known to pass on Python 3, until
# all unit tests will pass on Python 3.
commands =
python -bb -m testtools.run \
trove/tests/unittests/api/common/test_extensions.py \
trove/tests/unittests/api/common/test_limits.py \
trove/tests/unittests/api/test_versions.py \
trove/tests/unittests/backup/test_backup_controller.py \
trove/tests/unittests/backup/test_backup_models.py \
trove/tests/unittests/backup/test_backupagent.py \
trove/tests/unittests/cluster/test_cassandra_cluster.py \
trove/tests/unittests/cluster/test_cluster.py \
trove/tests/unittests/cluster/test_cluster_controller.py \
trove/tests/unittests/cluster/test_cluster_models.py \
trove/tests/unittests/cluster/test_cluster_pxc_controller.py \
trove/tests/unittests/cluster/test_cluster_redis_controller.py \
trove/tests/unittests/cluster/test_cluster_vertica_controller.py \
trove/tests/unittests/cluster/test_cluster_views.py \
trove/tests/unittests/cluster/test_mongodb_cluster.py \
trove/tests/unittests/cluster/test_vertica_cluster.py \
trove/tests/unittests/common/test_common_extensions.py \
trove/tests/unittests/common/test_context.py \
trove/tests/unittests/common/test_crypto_utils.py \
trove/tests/unittests/common/test_exception.py \
trove/tests/unittests/common/test_notification.py \
trove/tests/unittests/common/test_remote.py \
trove/tests/unittests/common/test_stream_codecs.py \
trove/tests/unittests/common/test_template.py \
trove/tests/unittests/common/test_utils.py \
trove/tests/unittests/common/test_wsgi.py \
trove/tests/unittests/conductor/test_conf.py \
trove/tests/unittests/conductor/test_methods.py \
trove/tests/unittests/configuration/test_configuration_controller.py \
trove/tests/unittests/datastore/test_capability.py \
trove/tests/unittests/datastore/test_datastore.py \
trove/tests/unittests/datastore/test_datastore_version_metadata.py \
trove/tests/unittests/datastore/test_datastore_versions.py \
trove/tests/unittests/db/test_migration_utils.py \
trove/tests/unittests/dns/test_designate_driver.py \
trove/tests/unittests/guestagent/test_agent_heartbeats_models.py \
trove/tests/unittests/guestagent/test_api.py \
trove/tests/unittests/guestagent/test_galera_cluster_api.py \
trove/tests/unittests/guestagent/test_guestagent_utils.py \
trove/tests/unittests/guestagent/test_models.py \
trove/tests/unittests/guestagent/test_pkg.py \
trove/tests/unittests/guestagent/test_query.py \
trove/tests/unittests/guestagent/test_service.py \
trove/tests/unittests/guestagent/test_vertica_api.py \
trove/tests/unittests/instance/test_instance_controller.py \
trove/tests/unittests/instance/test_instance_models.py \
trove/tests/unittests/instance/test_instance_status.py \
trove/tests/unittests/instance/test_instance_views.py \
trove/tests/unittests/mgmt/test_clusters.py \
trove/tests/unittests/mgmt/test_datastore_controller.py \
trove/tests/unittests/mgmt/test_datastores.py \
trove/tests/unittests/mgmt/test_models.py \
trove/tests/unittests/module/test_module_controller.py \
trove/tests/unittests/module/test_module_models.py \
trove/tests/unittests/module/test_module_views.py \
trove/tests/unittests/mysql/test_common.py \
trove/tests/unittests/mysql/test_user_controller.py \
trove/tests/unittests/network/test_neutron_driver.py \
trove/tests/unittests/quota/test_quota.py \
trove/tests/unittests/router/test_router.py \
trove/tests/unittests/secgroups/test_security_group.py \
trove/tests/unittests/taskmanager/test_api.py \
trove/tests/unittests/taskmanager/test_clusters.py \
trove/tests/unittests/taskmanager/test_galera_clusters.py \
trove/tests/unittests/taskmanager/test_manager.py \
trove/tests/unittests/taskmanager/test_models.py \
trove/tests/unittests/taskmanager/test_vertica_clusters.py \
trove/tests/unittests/upgrade/test_controller.py \
trove/tests/unittests/upgrade/test_models.py
[testenv:debug]
commands = oslo_debug_helper {posargs}
[testenv:cover]
# NOTE(amrith) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the cover job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
basepython = python2.7
commands =
coverage erase
python setup.py testr --coverage
coverage run -a run_tests.py
coverage html
coverage xml
coverage report
[testenv:venv]
# NOTE(amrith) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the venv job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
commands = {posargs}
[flake8]
show-source = True
# H301 is ignored on purpose.
# The rest of the ignores are TODOs.
ignore = F821,H237,H238,H301,H404,H405,H501
builtins = _
exclude=.venv,.tox,.git,dist,doc,openstack,*egg,tools,etc,build,*.po,*.pot
filename=*.py,trove-*
[testenv:checklinks]
commands = openstack-doc-test --check-links {posargs}
[testenv:checkbuild]
# NOTE(pmalik) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the publishdocs job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
commands =
openstack-doc-test --check-niceness --check-syntax --check-deletions {posargs}
openstack-doc-test --check-build {posargs}
[testenv:publishdocs]
# NOTE(amrith) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the publishdocs job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
commands = openstack-doc-test --check-build --publish --force
[testenv:releasenotes]
# NOTE(amrith) The setting of the install_command in this location
# is only required because currently infra does not actually
# support constraints files for the release notes job, and while
# the environment variable UPPER_CONSTRAINTS_FILE is set, there's
# no file there. It can be removed when infra changes this.
install_command = pip install -U {opts} {packages}
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