[tox] minversion = 1.6 skipsdist = True envlist = py27,py27sa07,py27sa08,py27sa09,py33,py34,py35,py36,pep8 [testenv] usedevelop = True whitelist_externals = bash # Avoid psycopg2 wheel package rename warnings by not using the binary. install_command = pip install --no-binary psycopg2 {opts} {packages} setenv = VIRTUAL_ENV={envdir} deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = bash tools/pretty_tox.sh '{posargs}' [testenv:py27] deps = sqlalchemy>=0.9 -r{toxinidir}/test-requirements.txt [testenv:py27sa07] basepython = python2.7 deps = sqlalchemy>=0.7,<=0.7.99 -r{toxinidir}/test-requirements.txt [testenv:py27sa08] basepython = python2.7 deps = sqlalchemy>=0.8,<=0.8.99 -r{toxinidir}/test-requirements.txt [testenv:py27sa09] basepython = python2.7 deps = sqlalchemy>=0.9,<=0.9.99 -r{toxinidir}/test-requirements.txt [testenv:py33] deps = sqlalchemy>=0.9 -r{toxinidir}/test-requirements.txt [testenv:py34] deps = sqlalchemy>=0.9 -r{toxinidir}/test-requirements.txt [testenv:py35] deps = sqlalchemy>=0.9 -r{toxinidir}/test-requirements.txt [testenv:py36] deps = sqlalchemy>=0.9 -r{toxinidir}/test-requirements.txt [testenv:pep8] commands = flake8 [testenv:docs] basepython = python3 deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build doc/source doc/build/html [testenv:venv] commands = {posargs} [testenv:cover] setenv = VIRTUAL_ENV={envdir} commands = python setup.py testr --slowest --testr-args='{posargs}' [flake8] # E111 indentation is not a multiple of four # E113 unexpected indentation # E121 continuation line indentation is not a multiple of four # E122 continuation line missing indentation or outdented # E123 closing bracket does not match indentation of opening bracket's line # E124 closing bracket does not match visual indentation # E125 continuation line does not distinguish itself from next logical line # E126 continuation line over-indented for hanging indent # E127 continuation line over-indented for visual indent # E128 continuation line under-indented for visual indent # E129 visually indented line with same indent as next logical line # E131 continuation line unaligned for hanging indent # E202 whitespace before ')' # E203 whitespace before ',' # E225 missing whitespace around operator # E226 missing whitespace around arithmetic operator # E228 missing whitespace around modulo operator # E231 missing whitespace after ',' # E265 block comment should start with '# ' # H234 assertEquals is deprecated, use assertEqual # E251 unexpected spaces around keyword / parameter equals # E261 at least two spaces before inline comment # E272 multiple spaces before keyword # E301 expected 1 blank line, found 0 # E302 expected 2 blank lines, found 1 # E303 too many blank lines (3) # E401 multiple imports on one line # E501 line too long ( > 79 characters) # E502 the backslash is redundant between brackets # E702 multiple statements on one line (semicolon) # E712 comparison to True should be 'if cond is True:' or 'if cond:' # F401 '' imported but unused # F403 'from migrate.exceptions import *' used; unable to detect undefined names # F811 redefinition of unused '' from line # F821 undefined name '' # F841 local variable '' is assigned to but never used # H101 Use TODO(NAME) # H201 no 'except:' at least use 'except Exception:' # H202 assertRaises Exception too broad # H233 Python 3.x incompatible use of print operator # H301 one import per line # H302 import only modules. '' does not import a module # H306 imports not in alphabetical order # H401 docstring should not start with a space # H402 one line docstring needs punctuation. # H403 multi line docstring end on new line # H404 multi line docstring should start with a summary # H405 multi line docstring summary not separated with an empty line # H501 Do not use locals() for string formatting # W391 blank line at end of file ignore = E111,E113,E121,E122,E123,E124,E125,E126,E127,E128,E129,E131,E202,E203,E225,E226,E228,E231,E251,E261,E265,E272,E301,E302,E303,E401,E501,E502,E702,E712,F401,F403,F811,F821,F841,H101,H201,H202,H233,H234,H301,H302,H306,H401,H402,H403,H404,H405,H501,W391 show-source = true builtins = _ exclude=.venv,.git,.tox,dist,doc,*openstack/common*,*lib/python*,*egg,tools,build [testenv:bindep] # Do not install any requirements. We want this to be fast and work even if # system dependencies are missing, since it's used to tell you what system # dependencies are missing! This also means that bindep must be installed # separately, outside of the requirements files, and develop mode disabled # explicitly to avoid unnecessarily installing the checked-out repo too (this # further relies on "tox.skipsdist = True" above). usedevelop = False deps = bindep commands = bindep test