diff options
author | Richard van der Hoff <richard@matrix.org> | 2017-09-05 16:35:23 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2017-09-05 16:35:23 +0100 |
commit | 4dd61df6f8d8d622b1327e2ce678d26e9c6911b0 (patch) | |
tree | 0663f648701a909ca4a94ab2c9b2ff1cec659a71 | |
parent | fix python path in jenkins scripts (diff) | |
download | synapse-4dd61df6f8d8d622b1327e2ce678d26e9c6911b0.tar.xz |
do tox install with pip -e
- this ensures we end up with a working virtualenv which we can use for other things.
-rw-r--r-- | tox.ini | 34 |
1 files changed, 29 insertions, 5 deletions
diff --git a/tox.ini b/tox.ini index 39ad305360..f408defc8f 100644 --- a/tox.ini +++ b/tox.ini @@ -14,14 +14,38 @@ deps = setenv = PYTHONDONTWRITEBYTECODE = no_byte_code - # As of twisted 16.4, trial tries to import the tests as a package, which - # means it needs to be on the pythonpath. - PYTHONPATH = {toxinidir} + commands = - /bin/sh -c "find {toxinidir} -name '*.pyc' -delete ; coverage run {env:COVERAGE_OPTS:} --source={toxinidir}/synapse \ - {envbindir}/trial {env:TRIAL_FLAGS:} {posargs:tests} {env:TOXSUFFIX:}" + /usr/bin/find "{toxinidir}" -name '*.pyc' -delete + coverage run {env:COVERAGE_OPTS:} --source="{toxinidir}/synapse" \ + "{envbindir}/trial" {env:TRIAL_FLAGS:} {posargs:tests} {env:TOXSUFFIX:} {env:DUMP_COVERAGE_COMMAND:coverage report -m} +[testenv:py27] + +# As of twisted 16.4, trial tries to import the tests as a package (previously +# it loaded the files explicitly), which means they need to be on the +# pythonpath. Our sdist doesn't include the 'tests' package, so normally it +# doesn't work within the tox virtualenv. +# +# As a workaround, we tell tox to do install with 'pip -e', which just +# creates a symlink to the project directory instead of unpacking the sdist. +# +# (An alternative to this would be to set PYTHONPATH to include the project +# directory. Note two problems with this: +# +# - if you set it via `setenv`, then it is also set during the 'install' +# phase, which inhibits unpacking the sdist, so the virtualenv isn't +# useful for anything else without setting PYTHONPATH similarly. +# +# - `synapse` is also loaded from PYTHONPATH so even if you only set +# PYTHONPATH for the test phase, we're still running the tests against +# the working copy rather than the contents of the sdist. So frankly +# you might as well use -e in the first place. +# +# ) +usedevelop=true + [testenv:packaging] deps = check-manifest |