- check build requirements for conflicts
- better isolation (ignore system site packages)
- support 2 prefixes: a "normal" one, and an "overlay" one
(with higher priority over "normal")
Add a new testsuite option `--use-venv` to enable the use of `venv`
for creating a test virtual environment. The option is opt-in because
creating a `venv` environment does not work right when running under a
`virtualenv`; which is why `tox-venv` must be used in combination with
tox.
- cleanup virtualenv creation code
- ensure all testing virtual environments use a recent version
of setuptools / wheel, making it easier to switch to custom
versions of those, as well as reducing network accesses
- reduce size of testing virtual environment, slightly speeding
up the testsuite
Ensure `virtualenv.system_site_packages = True` (needed for testing
`--user`) does not result in adding the real site-packages' directory
to `sys.path`.
Speedup virtualenv creation: create one (per session) relocatable
virtual environment, and then just make a copy of the resulting tree
when a new virtualenv is needed.
Re-using the built-in tmpdir fixture fixes pytest-dev/pytest#1083
Also with latest pytest there's no need to use --assert=plain on py35 anymore
Fixes#3699Fixespytest-dev/pytest#1083
Building wheels before installing elminates a cause of broken environments -
where install fails after we've already installed one or more packages.
If a package fails to wheel, we run setup.py install as normally.
Prevents this error:
$ tox -e py27 -- -m unit
...
INTERNALERROR> File "/Users/marca/dev/git-repos/pip/tests/conftest.py", line 16, in pytest_collection_modifyitems
INTERNALERROR> item.module.__file__,
INTERNALERROR> AttributeError: 'DoctestTextfile' object has no attribute 'module'
Previously pip was always installed directly from the source tree
however this causes concurrency issues so it is now copied into
the temporary directory and installed from there.