[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 [testenv:install-guide] # NOTE(jaegerandi): this target does not use constraints because # upstream infra does not yet support it. Once that's fixed, we can # drop the install_command. install_command = pip install -U --force-reinstall {opts} {packages} commands = sphinx-build -a -E -W -d install-guide/build/doctrees -b html install-guide/source install-guide/build/html