[tox]
envlist = py26,py27,py35,py36

[testenv:py35]
deps = -r{toxinidir}/test/utils/tox/requirements-py3.txt

[testenv:py36]
deps = -r{toxinidir}/test/utils/tox/requirements-py3.txt

[testenv]
deps = -r{toxinidir}/test/utils/tox/requirements.txt
whitelist_externals = make
commands =
    python --version
    py26: python -m compileall -fq -x 'test/samples|contrib/inventory/vagrant.py' lib test contrib
    py27: python -m compileall -fq -x 'test/samples' lib test contrib
    py3{5,6}: python -m compileall -fq -x 'test/samples|lib/ansible/modules' lib test contrib
    make tests
passenv =
    # Pass HOME to the test environment to avoid the missing HOME env
    # variable error. See issue: #20424
    HOME
    TEST_FLAGS


[flake8]
# These are things that the devs don't agree make the code more readable
# https://github.com/ansible/proposals/issues/50
# E123 closing bracket does not match indentation of opening bracket's line
# E124 closing bracket does not match visual indentation
# E127 continuation line over-indented for visual indent
# E128 continuation line under-indented for visual indent
# E201 whitespace after '['
# E202 whitespace before ']'
# E203 whitespace before ','
# E221 multiple spaces before operator
# E222 multiple spaces after operator
# E225 missing whitespace around operator
# E226 missing whitespace around arithmetic operator
# E227 missing whitespace around bitwise or shift operator
# E228 missing whitespace around modulo operator
# E231 missing whitespace after ','
# E241 multiple spaces after ','
# E251 unexpected spaces around keyword / parameter equals
# E261 at least two spaces before inline comment
# E262 inline comment should start with '# '
# E265 block comment should start with '# '
# E266 too many leading '#' for block comment
# E301 expected 1 blank line, found 0
# E302 expected 2 blank lines, found 1
# E303 too many blank lines (3)
# E402 module level import not at top of file
# E502 the backslash is redundant between brackets
# E713 test for membership should be 'not in'
# E731 do not assign a lambda expression, use a def
# W391 blank line at end of file
# W503 line break before binary operator
ignore = E123,E124,E127,E128,E201,E202,E203,E211,E221,E222,E225,E226,E228,E227,E231,E241,E251,E261,E262,E265,E266,E301,E302,E303,E402,E502,E713,E731,W391,W503
# not all the devs believe in 80 column line length
max-line-length = 160
# Not going to worry about style in the test suite
exclude = tests/*