[tox]
envlist = py27,py34,py35,pypy26,pycodestyle,autopep8

[testenv]
deps =
  -U
  -r{toxinidir}/tools/pip-requires
  --no-cache-dir
usedevelop = True
passenv= NOSE_VERBOSE
# Note: To check whether tools/pip-requires satisfies the requirements
# for running Ryu, the following runs ryu-manager berfore installing
# the addtional requirements.
commands =
  ryu-manager ryu/tests/unit/cmd/dummy_openflow_app.py
  pip install -r{toxinidir}/tools/optional-requires -r{toxinidir}/tools/test-requires
  coverage run --source=ryu ryu/tests/run_tests.py '{posargs}'

[testenv:scenario]
commands =
  python ryu/tests/integrated/run_test.py

[testenv:py27]
commands =
  {[testenv]commands}
  {[testenv:scenario]commands}

[testenv:py34]
commands =
  {[testenv]commands}
  {[testenv:scenario]commands}

[testenv:pycodestyle]
deps =
  -U
  --no-cache-dir
  pycodestyle
commands =
  pycodestyle

[testenv:autopep8]
# If some errors displayed with this test, please reformat codes with the
# following command first.
# $ autopep8 --recursive --in-place ryu/
whitelist_externals=bash
deps =
  -U
  --no-cache-dir
  autopep8
commands =
  bash -c 'test -z "$(autopep8 --recursive --diff ryu/)"'

[pycodestyle]
exclude = pbr-*,.venv,.tox,.git,doc,dist,tools,vcsversion.py,.pyc,ryu/contrib
# W503: line break occurred before a binary operator
# E116: unexpected indentation (comment)
# E402: module level import not at top of file
# E501: line too long (>79 characters)
# E722: do not use bare except, specify exception instead
# E731: do not assign a lambda expression, use a def
# E741: do not use variables named 'l', 'O', or 'I'
ignore = W503,E116,E402,E501,E722,E731,E741

[pep8]
exclude = pbr-*,.venv,.tox,.git,doc,dist,tools,vcsversion.py,.pyc,ryu/contrib
ignore = W503,E116,E402,E501,E722,E731,E741
