[tox] minversion = 1.6 skipsdist = True envlist = py27,py34,pep8 [testenv] usedevelop = True install_command = pip install -U {opts} {packages} setenv = VIRTUAL_ENV={envdir} PYTHONDONTWRITEBYTECODE = 1 LANGUAGE=en_US deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt whitelist_externals = bash commands = bash -c "TESTS_DIR=./ironic/tests/ python setup.py testr --slowest --testr-args='{posargs}'" [tox:jenkins] downloadcache = ~/cache/pip [testenv:genstates] deps = {[testenv]deps} pydot2 commands = {toxinidir}/tools/states_to_dot.py -f {toxinidir}/doc/source/images/states.svg --format svg [testenv:py34] # NOTE(viktors): we must change default connection string for MySQL because # we use a different DB connector (PyMySQL, not MySQLdb) in py3x # env. So we should put new DB URLs in the env variable. This # will allow to run tests, that require MySQL database, # for example DB migration tests. setenv = {[testenv]setenv} OS_TEST_DBAPI_ADMIN_CONNECTION=mysql+pymysql://openstack_citest:openstack_citest@localhost/;postgresql://openstack_citest:openstack_citest@localhost/postgres;sqlite:// deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements-py3.txt [testenv:pep8] commands = flake8 {posargs} # Check that .po and .pot files are valid: bash -c "find ironic -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null" [testenv:cover] setenv = VIRTUAL_ENV={envdir} LANGUAGE=en_US commands = python setup.py testr --coverage {posargs} [testenv:checkconfig] sitepackages = False envdir = {toxworkdir}/venv commands = {toxinidir}/tools/config/check_uptodate.sh [testenv:genconfig] sitepackages = False envdir = {toxworkdir}/venv commands = bash tools/config/generate_sample.sh -b . -p ironic -o etc/ironic [testenv:docs] setenv = PYTHONHASHSEED=0 sitepackages = False envdir = {toxworkdir}/venv commands = python setup.py build_sphinx [testenv:venv] setenv = PYTHONHASHSEED=0 commands = {posargs} [flake8] # E711: ignored because it is normal to use "column == None" in sqlalchemy ignore = E123,E126,E127,E128,E129,E711 exclude = .venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,build,tools,*ironic/nova* max-complexity=17 [hacking] import_exceptions = testtools.matchers, ironic.common.i18n