Mercurial > hg
changeset 46068:9e785d940525
run-tests: extend PATH on Windows to include user installed scripts
This allows the test environment to see pylint.exe when installed with
`pip install --user`, since it isn't normally on PATH.
Differential Revision: https://phab.mercurial-scm.org/D9535
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 07 Dec 2020 16:32:30 -0500 |
parents | cc0b332ab9fc |
children | c7899dd29800 |
files | tests/run-tests.py |
diffstat | 1 files changed, 23 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/run-tests.py Mon Dec 07 16:18:28 2020 -0500 +++ b/tests/run-tests.py Mon Dec 07 16:32:30 2020 -0500 @@ -3484,7 +3484,29 @@ path = os.environ['PATH'].split(os.pathsep) while exedir in path: path.remove(exedir) - os.environ['PATH'] = os.pathsep.join([exedir] + path) + + # Binaries installed by pip into the user area like pylint.exe may + # not be in PATH by default. + extra_paths = [exedir] + vi = sys.version_info + if 'APPDATA' in os.environ: + scripts_dir = os.path.join( + os.environ['APPDATA'], + 'Python', + 'Python%d%d' % (vi[0], vi[1]), + 'Scripts', + ) + + if vi.major == 2: + scripts_dir = os.path.join( + os.environ['APPDATA'], + 'Python', + 'Scripts', + ) + + extra_paths.append(scripts_dir) + + os.environ['PATH'] = os.pathsep.join(extra_paths + path) if not self._findprogram(pyexename): print("WARNING: Cannot find %s in search path" % pyexename)