Commit Graph

73 Commits

Author SHA1 Message Date
Jean-Paul Calderone
9429fb8fad Allow some control over trial command run by tox
The TAHOE_LAFS_TRIAL_ARGS environment variable can now be used to pass
arguments to tox.  If it is unset, some sensible defaults will be used.
2017-07-28 11:05:40 -04:00
Brian Warner
1bb62d843f tox docs: pin docutils-0.12
This avoids a bug in the recent docutils-0.13.1 which throws an exception
when encountering links to SVG images. ReadTheDocs currently does the same.
https://sourceforge.net/p/docutils/bugs/301/ is probably the upstream bug.

closes ticket:2847
2016-12-12 12:57:08 -08:00
Vladimir Rusinov
dcec018cdf Set minimal tox version to 1.7.
Current LTS Ubuntu ships with 1.6.0 which seems to fail with "Directory
'.' is not installable. File 'setup.py' not found.". Search shows that
it looks like 1.7 is not affected by this
(https://bugs.launchpad.net/cinder/+bug/1484035), although I've only
tested with tox 2.5.0.

Should fix https://tahoe-lafs.org/trac/tahoe-lafs/ticket/2841
2016-11-23 12:40:22 +00:00
Brian Warner
1f09e8f3ce tox -e coverage: build coverage.xml too
This is handy for my see-coverage-in-emacs workflow.
2016-10-08 21:23:05 -04:00
meejah
37062d1307 tell travis to run integration (but only on linux) 2016-09-26 13:33:45 -07:00
meejah
72f17afa76 Move check_magicfolder_smoke.py to proper integration tests
This introduces a py.test-based integration suite (currently just
containing magic-folder end-to-end tests). Also adds a tox environment
("integration") to run them.

The test setup is:

 - a "flogtool gather" instance
 - an Introducer
 - five Storage nodes
 - Alice and Bob client nodes
 - Alice and Bob have paired magic-folders
2016-08-30 20:47:47 -06:00
Brian Warner
36c57c74f4 make tox env for code-checks
This executes: check-debugging, check-interfaces, check-miscaptures,
find-trailing-spaces, check-umids, pyflakes.

Other changes:

* fix check-umids.py to take starting points. run it as `check-umids.py
  src` instead of `check-umids.py src/allmydata/*.py`
* check-debugging: rewrite in python to run from tox: tox doesn't like
  to run shell scripts.
* put check-interfaces.py last: it produces lots of warnings, but passes
  anyways. The others only produce significant output if they fail.
2016-08-19 17:42:05 -07:00
Brian Warner
fa28ed0730 tox: add pyflakes, which was accidentally removed from CI 2016-07-19 17:30:50 -07:00
Brian Warner
608719df91 tox: add "coverage" environment
Run with "tox -e coverage". Uses a new helper
module (allmydata.test.run_trial) to let us import+execute trial without
knowing exactly where the "trial" binary lives, which helps with using
"coverage run" under tox.
2016-05-09 14:32:21 -07:00
Brian Warner
1e1e86fe35 tox.ini: skip default install
We use "--deps = --editable=.[test]" to achieve three goals:

* make tahoe and it's dependencies available for tests
* use --editable, which is faster and allows "coverage run" to get the
  source filenames right
* use the [test] extra, which includes "mock"

Tox's default install command does the first, but doesn't use
--editable, so when the "deps" stage comes around, there's already a
non-editable install in place. It seems to get the [test] extra right,
but it doesn't wind up with an editable install.

So we disable the default install command and rely on the "deps" clause
instead.
2016-05-09 13:56:06 -07:00
Brian Warner
c97e8520f4 tox.ini: use --editable to work around old-pip bug
One of the buildslaves (Ubuntu wily 15.10) has a very old pip-1.5.6,
which doesn't know how to "pip install" a filepath+extra (like
".[test]") unless --editable is also used.

It's convenient to have --editable set anyways (so you can do subsequent
narrow testing without re-running tox, by running ".tox/py27/bin/trial
TESTCASE" or use .tox/py27/bin/activate), so changing the dependency
from ".[test]" to "--editable=.[test]" is the easiest way to work around
that older buildslave. (I could also have upgraded the buildslave to use
a newer pip, but 15.10 is pretty recent and other people will probably
hit this too, so this way it's fixed for everybody).

refs ticket:2776
2016-04-12 14:28:02 -07:00
Brian Warner
23f871a409 add [test] "extra" to install testing-only dependencies
closes ticket:2776
2016-04-12 12:32:46 -07:00
Brian Warner
a8161028d6 tox upcoming-deprecations: emit foolscap/twisted versions
Note that Twisted doesn't do anything like Versioneer, so this will
generally show e.g. "Twisted-16.1.0" for the entire interval between
16.1.0 and 16.2.0.
2016-04-06 13:37:56 -10:00
Brian Warner
9d20de3db9 improve run-deprecations script
Rewrote in Twisted, which lets us read/scan/print all log lines in
realtime. The output is now correctly interleaved (as well as
maintaining the stdout-vs-stderr of each message). The renamed
--warnings= logfile records all relevant lines from *both* stdout and
stderr (i.e. any that includes "DeprecationWarning"), which handles a
change (perhaps in recent Twisteds?) that emits these warnings on stdout
instead of stderr.
2016-04-06 11:07:06 -10:00
Brian Warner
d5e1b21a8a tox: add "upcoming-deprecations" environment
This runs trial against the latest (git) Twisted and Foolscap, to give
us an early warning about anything we're currently doing that will
become deprecated in their next releases.
2016-04-06 09:24:15 -10:00
Brian Warner
14c513db8a tox -e deprecations: add helper script to make it work
Tox doesn't run shell pipelines, and is unhappy about running tools that
it didn't install itself (including non-python things like "make"). So
this adds misc/build_helpers/run-deprecations.py, a python script that
runs a given command (i.e. trial) and writes stdout into a separate file
where the buildbot can see it, and counts the "DeprecationWarning" lines
from the file to decide the returncode.

This ought to improve the status display on the buildbot "test
deprecations" step.
2016-04-06 08:29:48 -10:00
Brian Warner
dfc09745a0 add 'tox -e docs', to check+render .rst files 2016-03-31 15:59:49 -07:00
Brian Warner
35ef8b4c71 tox.ini: fix spelling of DeprecationWarning 2016-03-27 14:59:20 -07:00
Brian Warner
0cc48878e0 tox: use python2.7 for deprecations 2016-03-27 12:05:18 -07:00
Brian Warner
42ede22f1e tox: run tahoe --version for buildbot, remove update_version
Our setup.cfg ensures that 'setup.py update_version' happens early
enough. And doing it from tox's commands= is too late anyways (because
we aren't using Versioneer, so the _version.py file must be updated
before tox installs a static copy into the virtualenv).

The buildbot's main run-trial-with-tox command has been updated to scan
for the 'tahoe --version' output and include the version string in the
buildbot results.
2016-03-17 22:01:33 -07:00
Brian Warner
0f3ce7a17f setup.py: remove 'make_executable' command 2016-03-15 18:19:54 -07:00
Brian Warner
24ed8431b2 move 'check-memory' from Makefile into tox.ini
So use 'tox -e check-memory' instead of 'make check-memory'. The tox
version will create a virtualenv and install tahoe for you before
running the tests, removing one use of the 'tahoe @FILENAME' hack (which
was used to run a python file with a PYTHONPATH set to import tahoe's
dependencies).
2016-03-08 21:19:41 -08:00
Brian Warner
e052134309 add initial tox support
This adds support for two environments: 'py27' for basic tests, and
'deprecations' to run tests with deprecation warnings turned on (the
latter is meant to be run from a buildbot step that knows how to count
and format the warnings nicely).
2016-03-08 21:16:36 -08:00