mirror of
https://github.com/codex-storage/deluge.git
synced 2025-01-13 21:14:55 +00:00
70d8b65f0a
This should fix problems with errors occuring when failing to enable plugins. Errors in plugin handling are handled better and properly logged. WebUI plugin in particular had issues when being enabled and disabled multiple times because it was trying to create DelugeWeb component each time it was enabled. If deluge-web is already listening on the same port, enabling the WebUI plugin will fail, and the checkbox will not be checked. There are still some issues when enabling/disabling plugins by clicking fast multiple times on the checkbox.
189 lines
4.4 KiB
INI
189 lines
4.4 KiB
INI
# 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.
|
|
#
|
|
# Usage: `pip install tox` and then run `tox` from this directory.
|
|
|
|
[flake8]
|
|
max-line-length = 120
|
|
builtins = _,__request__
|
|
exclude = .git,dist,build
|
|
|
|
[pep8]
|
|
max-line-length = 120
|
|
ignore = E301,E309
|
|
|
|
[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
|
|
mock
|
|
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 =
|
|
python setup.py egg_info_plugins
|
|
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.2.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]
|
|
# Force flake8 pip install as system flake8 uses hardcoded python path which imports the wrong libraries.
|
|
install_command = pip -v install --ignore-installed {opts} {packages}
|
|
setenv = {[testenv]setenv}
|
|
deps =
|
|
{[testenv]deps}
|
|
flake8
|
|
pep8-naming
|
|
commands =
|
|
flake8 --version
|
|
flake8
|
|
|
|
[testenv:flake8-complexity]
|
|
setenv = {[testenv]setenv}
|
|
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]
|
|
setenv = {[testenv]setenv}
|
|
deps = {[testcoveragebase]deps}
|
|
whitelist_externals = {[testcoveragebase]whitelist_externals}
|
|
commands =
|
|
{[testcoveragebase]commands}
|
|
coverage report
|
|
|
|
[testenv:testcoverage-html]
|
|
setenv = {[testenv]setenv}
|
|
deps = {[testcoveragebase]deps}
|
|
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}
|
|
deps =
|
|
{[testenv]deps}
|
|
sphinx
|
|
sphinxcontrib-napoleon
|
|
pillow
|
|
whitelist_externals =
|
|
{[testenv]whitelist_externals}
|
|
sphinx-build
|
|
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}
|
|
deps = {[docsbase]deps}
|
|
whitelist_externals = {[docsbase]whitelist_externals}
|
|
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}
|
|
deps =
|
|
{[docsbase]deps}
|
|
coverage
|
|
pytest-cov
|
|
whitelist_externals =
|
|
{[docsbase]whitelist_externals}
|
|
mkdir
|
|
commands =
|
|
mkdir -p build/doccoverage
|
|
sphinx-build -W -b coverage -d build/doctrees source build/doccoverage
|
|
py.test --doctest-glob='*.rst'
|