# Tox (http://tox.testrun.org/) is a tool for running tests # in multiple virtualenvs. This configuration file will run the # test suite on all supported python versions. To use it, "pip install tox" # and then run "tox" from this directory. [flake8] max-line-length = 120 builtins = _,__request__ ignore = E133 exclude = .tox,.git,dist,build [tox] envlist = py27, flake8, isort, docs minversion=1.8 [testenv] passenv = DISPLAY setenv = PYTHONPATH = {env:PWD}: sitepackages = True deps = twisted service_identity mako chardet pyopenssl pyxdg pytest whitelist_externals = py.test commands = {envpython} setup.py test [pytest] python_functions = test_ norecursedirs = .tox .git dist build pep8maxlinelength = 120 whitelist_externals= {[testenv]whitelist_externals} commands = py.test deluge ############## # Unit tests ############## [testenv:pydef] commands = python -c "import libtorrent as lt; print lt.version" py.test -v -s -m "not (todo or gtkui)" deluge/tests [testenv:pygtkui] commands = py.test -v -s -m "gtkui" deluge/tests [testenv:todo] commands = py.test -v -s -m "todo" deluge/tests [testenv:trial] setenv = {[testenv]setenv}:{env:PWD}/deluge/tests whitelist_externals = trial commands = trial --reporter=deluge-reporter deluge/tests [testenv:plugins] commands = py.test deluge/plugins [testenv:py26] basepython = python2.6 commands = {[testenv:pydef]commands} [testenv:py27] basepython = python2.7 commands = {[testenv:pydef]commands} ########################### # Code style verification ########################### [testenv:isort] deps = {[testenv]deps} isort>=4.0.0 whitelist_externals = {[testenv]whitelist_externals} isort commands = isort --version python -c "import subprocess, sys; output = subprocess.check_output('isort -q --diff --recursive deluge docs packaging *.py', shell=True); print output; sys.exit(len(output) != 0)" [testenv:flake8] setenv = {[testenv]setenv} whitelist_externals = {[testenv]whitelist_externals} flake8 deps = {[testenv]deps} flake8 pep8-naming commands = flake8 [testenv:flake8-complexity] setenv = {[testenv]setenv} whitelist_externals = {[testenv]whitelist_externals} flake8 sh deps = {[testenv:flake8]deps} mccabe commands = flake8 --exit-zero --max-complexity 15 deluge ###################### # Unit Test coverage ###################### [testcoveragebase] #install_command = pip install {opts} {packages} deps = {[testenv]deps} pytest-cov coverage whitelist_externals = {[testenv]whitelist_externals} coverage commands = coverage run --branch --source=deluge -m py.test -m "not todo" deluge/tests/ [testenv:testcoverage] deps = {[testcoveragebase]deps} setenv = {[testenv]setenv} whitelist_externals = {[testcoveragebase]whitelist_externals} commands = {[testcoveragebase]commands} coverage report [testenv:testcoverage-html] deps = {[testcoveragebase]deps} setenv = {[testenv]setenv} whitelist_externals = {[testcoveragebase]whitelist_externals} commands = {[testcoveragebase]commands} coverage html -d docs/build/htmlcoverage ###################### # Docs generation ###################### # We do not have all dependencies on RTD and travis so we exclude the # site packages (sitepackages=False) when building docs so that local # tests have a similar environment. [docsbase] sitepackages = False changedir = docs install_command = pip install {opts} {packages} whitelist_externals = {[testenv]whitelist_externals} sphinx-build deps = {[testenv]deps} sphinx sphinxcontrib-napoleon pillow commands = sphinx-build -E -W -b html -d build/doctrees source build/html [testenv:docs] sitepackages = {[docsbase]sitepackages} changedir = {[docsbase]changedir} install_command = {[docsbase]install_command} whitelist_externals = {[docsbase]whitelist_externals} deps = {[docsbase]deps} commands = sphinx-build -v -E -T -b html -d build/doctrees source build/html [testenv:docscoverage] sitepackages = {[docsbase]sitepackages} changedir = {[docsbase]changedir} install_command = {[docsbase]install_command} whitelist_externals = {[docsbase]whitelist_externals} mkdir deps = {[docsbase]deps} coverage pytest-cov commands = mkdir -p build/doccoverage sphinx-build -W -b coverage -d build/doctrees source build/doccoverage py.test --doctest-glob='*.rst'