2016-03-09 05:16:36 +00:00
|
|
|
# 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.
|
|
|
|
|
2018-01-17 21:21:30 +00:00
|
|
|
[pytest]
|
|
|
|
twisted = 1
|
|
|
|
|
2016-03-09 05:16:36 +00:00
|
|
|
[tox]
|
|
|
|
envlist = py27
|
2018-03-29 00:36:12 +00:00
|
|
|
minversion = 2.4
|
tox: add 'skipsdist=True', hoping this will fix buildbot
There appears to be a bug in setuptools, triggered by running "python
setup.py sdist" with setuptools==11.3 in that python's environment, on a
project whose setup.py has a setup_requires= that requests setuptools >=
28.8.0. When setuptools is upgraded from inside setup.py, it gets into a
weird hybrid state where it's using setup() keyword-argument plugins from the
newer setuptools, but those plugins reference functions that aren't present
in the older setuptools, and the sdist command fails with an import
error (module object has no attribute 'check_specifier').
We don't actually need the sdist: all our tox test environments use
"skip_install = true", because we install tahoe via the "deps" line (so we
can get the `[test]` extra, and get a faster symlink-ish "editable" install).
That install uses "pip", which uses the pip inside the new virtualenv, which
either uses a newer version of setuptools (dependent upon what version of
"virtualenv" was installed in the parent environment, next to tox) or somehow
allows setuptools to be upgraded without exposing this weird broken hybrid
state.
Either way, skipping the sdist seems to fix this problem.
refs ticket:2910
https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2910
2018-03-27 18:56:43 +00:00
|
|
|
skipsdist = True
|
2016-03-09 05:16:36 +00:00
|
|
|
|
|
|
|
[testenv]
|
2018-03-29 00:36:12 +00:00
|
|
|
basepython=python2.7
|
2018-04-03 18:07:17 +00:00
|
|
|
passenv = TAHOE_LAFS_* USERPROFILE HOMEDRIVE HOMEPATH
|
2018-03-29 00:36:12 +00:00
|
|
|
# Pre-install "incremental" to avoid bug #2913. Basically if Twisted's
|
|
|
|
# setup_requires=["incremental"] causes this to be installed (with
|
|
|
|
# setuptools), then it'll fail on travis's OS-X 10.12 machines when PyPI
|
|
|
|
# disables access with TLS-1.1 or older, so we have to install it ahead of
|
|
|
|
# time (with pip).
|
|
|
|
deps = incremental
|
|
|
|
# We add usedevelop=True for speed, and extras=test to get things like "mock"
|
|
|
|
# that are required for our unit tests.
|
|
|
|
usedevelop = True
|
|
|
|
extras = test
|
2016-03-09 05:16:36 +00:00
|
|
|
commands =
|
2016-07-20 00:18:31 +00:00
|
|
|
pyflakes src static misc setup.py
|
2016-03-18 05:01:33 +00:00
|
|
|
tahoe --version
|
2017-07-26 14:25:38 +00:00
|
|
|
trial {env:TAHOE_LAFS_TRIAL_ARGS:--rterrors} {posargs:allmydata}
|
2016-03-09 05:16:36 +00:00
|
|
|
|
2016-08-22 23:36:56 +00:00
|
|
|
[testenv:integration]
|
|
|
|
commands =
|
2016-09-15 17:43:46 +00:00
|
|
|
# NOTE: 'run with "py.test --keep-tempdir -s -v integration/" to debug failures'
|
2016-08-22 23:36:56 +00:00
|
|
|
py.test -v integration/
|
|
|
|
|
2016-05-09 20:59:54 +00:00
|
|
|
[testenv:coverage]
|
|
|
|
# coverage (with --branch) takes about 65% longer to run
|
|
|
|
commands =
|
2016-07-20 00:18:31 +00:00
|
|
|
pyflakes src static misc setup.py
|
2016-05-09 20:59:54 +00:00
|
|
|
tahoe --version
|
2017-12-31 13:50:21 +00:00
|
|
|
coverage run --branch -m twisted.trial {env:TAHOE_LAFS_TRIAL_ARGS:--rterrors --reporter=timing} {posargs:allmydata}
|
2016-09-29 05:24:10 +00:00
|
|
|
coverage xml
|
2016-05-09 20:59:54 +00:00
|
|
|
|
2016-04-06 23:57:41 +00:00
|
|
|
[testenv:codechecks]
|
|
|
|
commands =
|
|
|
|
pyflakes src static misc setup.py
|
|
|
|
python misc/coding_tools/check-umids.py src
|
|
|
|
python misc/coding_tools/check-debugging.py
|
|
|
|
python misc/coding_tools/find-trailing-spaces.py -r src static misc setup.py
|
|
|
|
python misc/coding_tools/check-miscaptures.py
|
|
|
|
# note: check-interfaces.py imports everything, so it must be run
|
|
|
|
# from a populated virtualenv
|
|
|
|
python misc/coding_tools/check-interfaces.py
|
|
|
|
|
2016-03-09 05:16:36 +00:00
|
|
|
[testenv:deprecations]
|
|
|
|
setenv =
|
2016-03-27 21:59:20 +00:00
|
|
|
PYTHONWARNINGS=default::DeprecationWarning
|
2016-03-09 05:16:36 +00:00
|
|
|
commands =
|
2017-07-26 14:25:38 +00:00
|
|
|
python misc/build_helpers/run-deprecations.py --warnings=_trial_temp/deprecation-warnings.log trial {env:TAHOE_LAFS_TRIAL_ARGS:--rterrors} {posargs:allmydata}
|
2016-03-09 05:17:51 +00:00
|
|
|
|
2016-04-06 19:24:15 +00:00
|
|
|
[testenv:upcoming-deprecations]
|
|
|
|
setenv =
|
|
|
|
PYTHONWARNINGS=default::DeprecationWarning
|
|
|
|
deps =
|
|
|
|
git+https://github.com/twisted/twisted
|
|
|
|
git+https://github.com/warner/foolscap
|
|
|
|
commands =
|
2016-04-06 23:34:14 +00:00
|
|
|
flogtool --version
|
2017-07-26 14:25:38 +00:00
|
|
|
python misc/build_helpers/run-deprecations.py --warnings=_trial_temp/deprecation-warnings.log trial {env:TAHOE_LAFS_TRIAL_ARGS:--rterrors} {posargs:allmydata}
|
2016-04-06 19:24:15 +00:00
|
|
|
|
2016-03-09 05:17:51 +00:00
|
|
|
[testenv:checkmemory]
|
|
|
|
commands =
|
|
|
|
rm -rf _test_memory
|
|
|
|
python src/allmydata/test/check_memory.py upload
|
|
|
|
python src/allmydata/test/check_memory.py upload-self
|
|
|
|
python src/allmydata/test/check_memory.py upload-POST
|
|
|
|
python src/allmydata/test/check_memory.py download
|
|
|
|
python src/allmydata/test/check_memory.py download-GET
|
|
|
|
python src/allmydata/test/check_memory.py download-GET-slow
|
|
|
|
python src/allmydata/test/check_memory.py receive
|
2016-03-31 22:59:49 +00:00
|
|
|
|
|
|
|
# Use 'tox -e docs' to check formatting and cross-references in docs .rst
|
|
|
|
# files. The published docs are built by code run over at readthedocs.org,
|
|
|
|
# which does not use this target (but does something similar).
|
|
|
|
#
|
|
|
|
# If you have "sphinx" installed in your virtualenv, you can just do "make -C
|
|
|
|
# docs html", or "cd docs; make html".
|
|
|
|
#
|
|
|
|
# You can also open docs/_build/html/index.html to see the rendered docs in
|
|
|
|
# your web browser.
|
|
|
|
|
|
|
|
[testenv:docs]
|
2016-12-12 20:57:08 +00:00
|
|
|
# we pin docutils because of https://sourceforge.net/p/docutils/bugs/301/
|
|
|
|
# which asserts when it reads links to .svg files (e.g. about.rst)
|
|
|
|
deps =
|
|
|
|
sphinx
|
|
|
|
docutils==0.12
|
2016-05-09 20:56:06 +00:00
|
|
|
# normal install is not needed for docs, and slows things down
|
|
|
|
skip_install = True
|
2016-03-31 22:59:49 +00:00
|
|
|
commands =
|
|
|
|
sphinx-build -b html -d {toxinidir}/docs/_build/doctrees {toxinidir}/docs {toxinidir}/docs/_build/html
|
2017-06-08 01:03:11 +00:00
|
|
|
|
|
|
|
[testenv:pyinstaller]
|
2018-03-29 00:36:12 +00:00
|
|
|
extras =
|
2017-06-08 01:03:11 +00:00
|
|
|
deps =
|
2018-03-29 18:11:15 +00:00
|
|
|
packaging
|
2017-06-08 01:03:11 +00:00
|
|
|
pyinstaller
|
|
|
|
# Setting PYTHONHASHSEED to a known value assists with reproducible builds.
|
|
|
|
# See https://pyinstaller.readthedocs.io/en/stable/advanced-topics.html#creating-a-reproducible-build
|
|
|
|
setenv=PYTHONHASHSEED=1
|
|
|
|
commands=pyinstaller -y --clean pyinstaller.spec
|
2018-03-27 21:34:32 +00:00
|
|
|
|
|
|
|
[testenv:tarballs]
|
|
|
|
deps =
|
|
|
|
commands =
|
|
|
|
python setup.py update_version
|
|
|
|
python setup.py sdist --formats=bztar,gztar,zip bdist_wheel
|