cinder/tox.ini
Victor Stinner 068db12d09 Port test_volume to Python 3
* don't use hasttr() to check if a lazy SQLAlchemy is loaded or not: use
  the obj_attr_is_set() method instead. On Python 3, hasattr() pass
  through SQLAlchemy exceptions which is unexpected.
* Replace a/b with a//b to use integer division, not float division.
* Replace filter() with list-comprehension using an if.
* Replace file() with open() and open /dev/null in binary mode (not text
  mode, so Unicode on Python 3).
* test_volume require "import cinder.volume.targets.tgt" on Python 3
* Use a key function to sort a list of dictionaries. Dictionaries are no
  more comparable on Python 3.
* tox.ini: add the following tests to Python 3.4.

  - cinder.tests.unit.keymgr.test_mock_key_mgr
  - cinder.tests.unit.test_volume

Note: test_list_availability_zones_enabled_service() of test_volume
was broken, the test checked that the result of .sort() is None...

Blueprint cinder-python3
Change-Id: If1a26acc0138db9bda7fde1cb1f40093d9b3c494
2015-09-29 14:22:40 +02:00

179 lines
5.9 KiB
INI

[tox]
minversion = 1.6
skipsdist = True
envlist = py27,pep8
[testenv]
# Note the hash seed is set to 0 until cinder can be tested with a
# random hash seed successfully.
setenv = VIRTUAL_ENV={envdir}
PYTHONHASHSEED=0
usedevelop = True
install_command = pip install {opts} {packages}
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
# By default ostestr will set concurrency
# to ncpu, to specify something else use
# the concurrency=<n> option.
# call ie: 'tox -epy27 -- --concurrency=4'
commands = ostestr {posargs}
whitelist_externals = bash
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
[tox:jenkins]
downloadcache = ~/cache/pip
[testenv:py34]
commands =
python -m testtools.run \
cinder.tests.unit.image.test_glance \
cinder.tests.unit.keymgr.test_mock_key_mgr \
cinder.tests.unit.targets.test_base_iscsi_driver \
cinder.tests.unit.targets.test_cxt_driver \
cinder.tests.unit.targets.test_iser_driver \
cinder.tests.unit.targets.test_lio_driver \
cinder.tests.unit.targets.test_scst_driver \
cinder.tests.unit.targets.test_tgt_driver \
cinder.tests.unit.test_api \
cinder.tests.unit.test_api_urlmap \
cinder.tests.unit.test_backup \
cinder.tests.unit.test_backup_ceph \
cinder.tests.unit.test_backup_driver_base \
cinder.tests.unit.test_backup_swift \
cinder.tests.unit.test_backup_tsm \
cinder.tests.unit.test_block_device \
cinder.tests.unit.test_blockbridge \
cinder.tests.unit.test_cloudbyte \
cinder.tests.unit.test_cmd \
cinder.tests.unit.test_conf \
cinder.tests.unit.test_context \
cinder.tests.unit.test_db_api \
cinder.tests.unit.test_dellfc \
cinder.tests.unit.test_dellsc \
cinder.tests.unit.test_dellscapi \
cinder.tests.unit.test_dothill \
cinder.tests.unit.test_drbdmanagedrv \
cinder.tests.unit.test_emc_xtremio \
cinder.tests.unit.test_eqlx \
cinder.tests.unit.test_evaluator \
cinder.tests.unit.test_exception \
cinder.tests.unit.test_glusterfs \
cinder.tests.unit.test_gpfs \
cinder.tests.unit.test_hitachi_hbsd_horcm_fc \
cinder.tests.unit.test_hitachi_hbsd_snm2_fc \
cinder.tests.unit.test_hitachi_hbsd_snm2_iscsi \
cinder.tests.unit.test_hitachi_hnas_backend \
cinder.tests.unit.test_hitachi_hnas_iscsi \
cinder.tests.unit.test_hitachi_hnas_nfs \
cinder.tests.unit.test_hp_xp_fc \
cinder.tests.unit.test_hplefthand \
cinder.tests.unit.test_huawei_drivers \
cinder.tests.unit.test_huawei_drivers_compatibility \
cinder.tests.unit.test_ibm_flashsystem_iscsi \
cinder.tests.unit.test_ibmnas \
cinder.tests.unit.test_ibm_xiv_ds8k \
cinder.tests.unit.test_image_utils \
cinder.tests.unit.test_infortrend_cli \
cinder.tests.unit.test_migrations \
cinder.tests.unit.test_misc \
cinder.tests.unit.test_netapp_nfs \
cinder.tests.unit.test_nfs \
cinder.tests.unit.test_nimble \
cinder.tests.unit.test_qos_specs \
cinder.tests.unit.test_quota \
cinder.tests.unit.test_rbd \
cinder.tests.unit.test_remotefs \
cinder.tests.unit.test_replication \
cinder.tests.unit.test_san \
cinder.tests.unit.test_scality \
cinder.tests.unit.test_service \
cinder.tests.unit.test_sheepdog \
cinder.tests.unit.test_smbfs \
cinder.tests.unit.test_solidfire \
cinder.tests.unit.test_test \
cinder.tests.unit.test_test_utils \
cinder.tests.unit.test_v6000_common \
cinder.tests.unit.test_vmware_vmdk \
cinder.tests.unit.test_vmware_volumeops \
cinder.tests.unit.test_volume \
cinder.tests.unit.test_volume_configuration \
cinder.tests.unit.test_volume_glance_metadata \
cinder.tests.unit.test_volume_rpcapi \
cinder.tests.unit.test_volume_transfer \
cinder.tests.unit.test_volume_types \
cinder.tests.unit.test_volume_types_extra_specs \
cinder.tests.unit.test_volume_utils \
cinder.tests.unit.volume.flows.test_create_volume_flow \
cinder.tests.unit.windows.test_smbfs \
cinder.tests.unit.windows.test_vhdutils \
cinder.tests.unit.windows.test_windows \
cinder.tests.unit.windows.test_windows_remotefs \
cinder.tests.unit.windows.test_windows_utils
[testenv:pep8]
commands =
flake8 {posargs} . cinder/common
# Check that .po and .pot files are valid:
bash -c "find cinder -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
{toxinidir}/tools/config/check_uptodate.sh
{toxinidir}/tools/check_exec.py {toxinidir}/cinder
[testenv:pylint]
deps = -r{toxinidir}/requirements.txt
pylint==0.26.0
commands = bash tools/lintstack.sh
[testenv:cover]
# Also do not run test_coverage_ext tests while gathering coverage as those
# tests conflict with coverage.
commands =
python setup.py testr --coverage \
--testr-args='^(?!.*test.*coverage).*$'
[testenv:genconfig]
sitepackages = False
envdir = {toxworkdir}/venv
commands = {toxinidir}/tools/config/generate_sample.sh from_tox
[testenv:venv]
commands = {posargs}
[testenv:docs]
commands = python setup.py build_sphinx
[testenv:gendriverlist]
sitepackages = False
envdir = {toxworkdir}/venv
commands = python {toxinidir}/tools/generate_driver_list.py
[testenv:bandit]
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -c tools/bandit.yaml -r cinder -n 5 -ll
[flake8]
# Following checks are ignored on purpose.
#
# E251 unexpected spaces around keyword / parameter equals
# reason: no improvement in readability
#
# Due to the upgrade to hacking 0.9.2 the following checking are
# ignored on purpose for the moment and should be re-enabled.
#
# H405
# Due to the upgrade to hacking 0.10.0 the following checking are
# ignored on purpose for the moment and should be cleaned up and re-enabled.
#
# H105 Don't use author tags
#
ignore = E251,H105
exclude = .git,.venv,.tox,dist,tools,doc,common,*egg,build
max-complexity=30
[hacking]
local-check-factory = cinder.hacking.checks.factory
import_exceptions = cinder.i18n