trove/tox.ini
Victor Stinner 61614653d6 Port more unit tests to Python 3
* Replace string.find(a, b) with a.find(b)
* NamedTemporaryFile: open file in text mode rather than opening it
  in binary mode.
* Module.process_contents(): if contents is a Unicode string, first
  encode it to UTF-8 before hashing the content to MD5.
* ClusterController: replace dict.items()[0] with next(iter(dict.items()))
* tox: run the following tests on Python 3.4

  - mysql/test_common.py
  - taskmanager/test_models.py
  - module/test_module_models.py
  - test_cluster_controller.py

Partially implements: blueprint trove-python3
Change-Id: I5372520f9717b4f0279c4b436ca88c160ddf894b
2016-05-30 10:47:26 +02:00

175 lines
7.9 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/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_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