diff options
author | Richard van der Hoff <github@rvanderhoff.org.uk> | 2017-09-06 17:08:19 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-09-06 17:08:19 +0100 |
commit | e2fcba038c0229325cc442aa50e3ab6b62842e58 (patch) | |
tree | 3797c238b9ea386621015a8cb142fe23444d83d2 /tox.ini | |
parent | Merge remote-tracking branch 'origin/master' into develop (diff) | |
parent | do tox install with pip -e (diff) | |
download | synapse-e2fcba038c0229325cc442aa50e3ab6b62842e58.tar.xz |
Merge pull request #2439 from matrix-org/rav/tox_tweaks
do tox install with pip -e
Diffstat (limited to 'tox.ini')
-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 |