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
|
2016-11-23 12:40:22 +00:00
|
|
|
minversion = 1.7
|
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]
|
2017-07-26 14:25:38 +00:00
|
|
|
passenv = TAHOE_LAFS_TRIAL_ARGS USERPROFILE HOMEDRIVE HOMEPATH
|
2016-05-09 20:56:06 +00:00
|
|
|
# the default install is non-(--editable), and would displace our -e .[test]
|
|
|
|
skip_install = True
|
2016-04-12 21:28:02 +00:00
|
|
|
deps = --editable=.[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
|
2017-07-26 14:25:38 +00:00
|
|
|
passenv = TAHOE_LAFS_TRIAL_ARGS USERPROFILE HOMEDRIVE HOMEPATH
|
2016-05-09 20:59:54 +00:00
|
|
|
skip_install = True
|
|
|
|
deps = --editable=.[test]
|
|
|
|
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]
|
|
|
|
passenv = USERPROFILE HOMEDRIVE HOMEPATH
|
|
|
|
skip_install = True
|
|
|
|
deps = --editable=.[test]
|
|
|
|
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]
|
2016-03-27 19:05:18 +00:00
|
|
|
basepython=python2.7
|
2017-07-26 14:25:38 +00:00
|
|
|
passenv = TAHOE_LAFS_TRIAL_ARGS USERPROFILE HOMEDRIVE HOMEPATH
|
2016-05-09 20:56:06 +00:00
|
|
|
skip_install = True
|
2016-04-12 21:28:02 +00:00
|
|
|
deps = --editable=.[test]
|
2016-03-09 05:16:36 +00:00
|
|
|
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]
|
|
|
|
basepython=python2.7
|
2017-07-26 14:25:38 +00:00
|
|
|
passenv = TAHOE_LAFS_TRIAL_ARGS USERPROFILE HOMEDRIVE HOMEPATH
|
2016-04-06 19:24:15 +00:00
|
|
|
setenv =
|
|
|
|
PYTHONWARNINGS=default::DeprecationWarning
|
2016-05-09 20:56:06 +00:00
|
|
|
skip_install = True
|
2016-04-06 19:24:15 +00:00
|
|
|
deps =
|
2016-04-12 21:28:02 +00:00
|
|
|
--editable=.[test]
|
2016-04-06 19:24:15 +00:00
|
|
|
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]
|
|
|
|
basepython=python2.7
|
|
|
|
# Do not use the '--editable' flag for this testenv as the 'pyinstaller.spec'
|
|
|
|
# script called below will need patch the source tree at build-time in order
|
|
|
|
# to remove the setuptools requirement from '_auto_deps.py' (and we want to
|
|
|
|
# avoid race-conditions when running tests in parallel, e.g., with "detox").
|
|
|
|
deps =
|
|
|
|
.
|
|
|
|
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
|